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()方法都会起作用


因此,使用dispatchQueueSDWebImage库可能是您的答案。

您可以像这样在后台加载数据

DispatchQueue.global(qos: .background).async {
   // load data here
}
之后,需要在主线程中加载UI

DispatchQueue.main.sync {
            // show data here
        }

尝试在ViewDidAppear中启动加载出于刷新目的,您可以将代码添加到DispatchQueue.main.asyncAfter(截止日期:DispatchTime.now()+0.1,执行:{加载图像仍需要一些时间…这似乎是应用程序滞后了