我有一个 viewController 需要我加载一系列图像并将它们显示在屏幕上,但是在 viewDidLoad 中加载这些图像需要一段时间,并且在视图出现在屏幕上之前会有延迟。
有没有一种方法可以在 viewDidLoad 中仅加载屏幕上可见的前 5 个图像,然后在 viewController 加载后立即加载剩余的图像?
这是 viewWillAppear 或 viewDidAppear 的用途吗?是否有其他地方最适合在不延迟用户响应时间的情况下加载内容?
提前非常感谢!
我有一个 viewController 需要我加载一系列图像并将它们显示在屏幕上,但是在 viewDidLoad 中加载这些图像需要一段时间,并且在视图出现在屏幕上之前会有延迟。
有没有一种方法可以在 viewDidLoad 中仅加载屏幕上可见的前 5 个图像,然后在 viewController 加载后立即加载剩余的图像?
这是 viewWillAppear 或 viewDidAppear 的用途吗?是否有其他地方最适合在不延迟用户响应时间的情况下加载内容?
提前非常感谢!
我建议您使用 GCD 或 NSInvocation 在后台线程上加载图像。在 viewDidLoad 中,您只需启动后台处理。在后台线程上加载图像后,将它们传递给主线程并根据需要显示。
您可以使用viewWillAppear
在viewDidAppear
.
viewDidAppear
如果您只想在加载图像之前显示视图,您当然可以这样做。请记住,它viewDidAppear
可能会被多次调用,并且您可能只想加载图像。
如果您从 Internet 下载图像(即加载时间较长),您可能需要实现一个图像加载器,让您的控制器知道图像已准备好通过委托显示。如果所有图像都存储在本地并在几秒钟内加载,则该viewDidAppear
方法应该可以正常工作。