我有一个viewController,需要我加载一系列图像并在屏幕上显示它们,但是在viewDidLoad中加载这些图像需要一段时间,并且在视图出现在屏幕上之前有一段延迟。
有没有办法可以加载viewDidLoad中屏幕上可见的前5个图像,然后在viewController加载后立即加载剩余的图像?
这是viewWillAppear或viewDidAppear的用途吗? 是否还有其他地方最适合加载内容而不会延迟用户的响应时间?
提前非常感谢!
答案 0 :(得分:0)
如果您只是想在加载图片之前显示视图,那么您当然可以在viewDidAppear
中执行此操作。请注意,viewDidAppear
可能会被多次调用,您可能只想加载图像。
如果您要从互联网上下载图像(即加载时间过长),您可能需要实施一个图像加载程序,让控制器知道图像已准备好通过委托显示。如果所有图像都存储在本地并在几秒钟内加载,则viewDidAppear
方法应该可以正常工作。
答案 1 :(得分:0)
您可以使用viewWillAppear
来显示前5个图像/数据,而不会对viewDidAppear
中的用户和休息数据造成任何延迟。
答案 2 :(得分:0)
我建议您使用GCD或NSInvocation在后台线程上加载图像。在viewDidLoad中,您只需启动后台处理。将图像加载到后台线程后,将它们传递给主线程并按需使用。