Ios 如何在不执行视图控制器的情况下快速打开视图控制器';什么是过程?
我必须显示各种文件夹,其中包含大量的图像和视频,但当我点击文件夹,它需要几秒钟的时间加载,这似乎是滞后或挂起 我想先打开视图控制器,然后显示加载过程。。。。Ios 如何在不执行视图控制器的情况下快速打开视图控制器';什么是过程?,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我必须显示各种文件夹,其中包含大量的图像和视频,但当我点击文件夹,它需要几秒钟的时间加载,这似乎是滞后或挂起 我想先打开视图控制器,然后显示加载过程。。。。 怎么做 在viewWillExample()方法中获取数据,而不是在viewDidLoad()方法中获取数据。对于照片或图像加载问题,您可以使用SDWebImage解决此问题 myimageview.sd_setImage(with: imageURL, placeholderImage: UIImage(named: "empty_ima
怎么做 在
viewWillExample()
方法中获取数据,而不是在viewDidLoad()
方法中获取数据。对于照片或图像加载问题,您可以使用SDWebImage解决此问题
myimageview.sd_setImage(with: imageURL, placeholderImage: UIImage(named: "empty_image_icon"))
//imageURL is URL of image.
//empty_image_icon id the default image which will show during process.
您可以在
viewdide()
方法中获取数据/媒体,并在viewdideload()
方法中开始设置加载指示器的动画
如果在
视图中加载数据将出现()
,则视图控制器需要几秒钟的时间。创建视图后,可以调用“获取数据”函数。创建视图后,ViewDidAspect()方法会起作用,但是,每当您创建的视图在屏幕上可见时,此方法都会起作用,因此它不可能是所有情况下的最佳解决方案。这意味着,可能会不必要地获取数据。例如,每当您更改视图控制器并再次返回该屏幕、切换应用程序或应用程序出现在前台时,viewdideappear()方法都会起作用
因此,使用dispatchQueue或SDWebImage库可能是您的答案。您可以像这样在后台加载数据
DispatchQueue.global(qos: .background).async {
// load data here
}
之后,需要在主线程中加载UI
DispatchQueue.main.sync {
// show data here
}
尝试在ViewDidAppear中启动加载出于刷新目的,您可以将代码添加到DispatchQueue.main.asyncAfter(截止日期:DispatchTime.now()+0.1,执行:{加载图像仍需要一些时间…这似乎是应用程序滞后了