繁体   English   中英

如何快速刷新图库?

[英]How to refresh photo gallery in swift?

如何快速刷新图库? 如果我拍照,则必须关闭该应用程序,然后重新启动以查看它。 我想自动刷新图库。 解决此问题的最佳方法是什么?

这取决于您如何实现该功能。

1)如果您使用Tableview / ColloectionView,

拍照选项后,在打开的CameraViewController中单击“ 使用” 。您必须实现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..
   }

将此添加到您的viewDidLoad方法:
NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.refreshView), userInfo: nil, repeats: true)然后在refreshView中实现您想要的操作。

更好的方法:使用observer pattern

经过几次调查,我发现,每当您从设备的相机拍摄照片时,您的应用程序都会在后台运行,然后将您的应用程序置于前台。 因此,我认为您必须在AppDelegate中保留tableView / CollectionView的实例(取决于您的实现)。 将您的tableView / CollectionView重新加载为

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

在您的AppDelegate.swift applicationWillEnterForeground函数中。 我认为这可以解决您的问题。

或者,只需创建一个委托 ,然后在您的AppDelegate.swift applicationWillEnterForeground函数中调用它,然后在ViewController中实现该委托函数,然后重新加载tableView或collectionView。 两种解决方案都对我有用。 我认为它也会为您服务。

如果您正在使用PHPhotoLibrary,则此链接可能对您非常有帮助。 您只需要注册一个变更观察者并开始观察,就可以在上面的链接中很好地解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM