2016-08-01 125 views
0

如何在swift中刷新照片庫?如果我拍照,我必須關閉應用程序,然後重新啓動才能看到它。我想自動刷新圖庫。解決這個問題的最好方法是什麼?如何在swift中刷新照片庫?

+0

在蘋果框架中不可能嘗試第三方工具 –

回答

0

將此添加到您的viewDid加載方法:
NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.refreshView), userInfo: nil, repeats: true)並在refreshView中實現您想要執行的操作。

更好的方法: 使用observer pattern

0

這取決於您如何實現該功能。

1)如果你使用泰伯維/ ColloectionView,

拍照選項後單擊使用在打開CameraViewController.You已實現UIImagePickerControllerDelegate,UINavigationControllerDelegate.Delegate方法:

- (void)imagePickerController:(UIImagePickerController *)picker 
    didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 
      //Made your code according your requirements. 
     //Reload TableView/ColloectionView.. 
    } 

2)你只顯示在UIImageView中,

- (void)imagePickerController:(UIImagePickerController *)picker 
    didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 
      //Made your code according your requirements. 
      [picker dismissModalViewControllerAnimated:YES]; 
    UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    UIImage *yourImageView = image; 
    //show image in your imageview.. 
    } 
+0

我不使用imagePicker我自動從我的庫中加載照片。 – mafioso

0

經過少數調查後,我發現,無論何時您從設備的相機拍攝照片,您的應用都會在後臺進行拍攝,然後您會將應用置於前景。所以,在我看來,你必須在AppDelegate中保存一個tableView/CollectionView的實例(取決於你的實現)。 刷新您的tableView /的CollectionView作爲

func applicationWillEnterForeground(application: UIApplication) { self.yourTableView.reloadData() }

在AppDelegate.swift applicationWillEnterForeground功能。我認爲這會解決你的問題。

或者 簡單地做一個委託並調用它在你的AppDelegate.swift applicationWillEnterForeground功能,並實現在你的ViewController委託函數和重新加載的tableView或的CollectionView。 這兩種解決方案都適合我。我認爲它也適用於你。

如果您使用的是PHPhotoLibrary This Link可能對您非常有用。你只需要註冊一個變更觀察者並開始觀察,這在上面的鏈接中有很好的解釋。

+0

什麼是重新載入數據? – mafioso

+0

reloadData()用於重新加載你的tableView。請參閱此[鏈接]中的**重新加載表格視圖**部分(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/#//apple_ref/doc/uid/TP40006943- CH3-SW61) –

+0

我不使用表格,只是將所有內容加載到PHFetchResult中。我如何重新加載? – mafioso