我正在将一个500万像素加载到调用self.imagecontainer.image = myUIImage
的UIImageView中。 myUIImage是来自iPhone相机的图像。
这需要一些时间才能在屏幕上看到图像,即使我可以减少这个时间,我也需要在图像真正显示在屏幕上时启动一个过程。
我怎么知道图像已加载并显示,而不仅仅是由UIImageView处理?
答案 0 :(得分:3)
嗯......首先,你不应该在imageView中设置500万像素。 imageView仅适用于屏幕显示,即使它缩放您为显示目的设置的图像,也会保留原始图像,以便您的内存占用率提高。如果你最多这样做,你将会有一个表现不佳的应用程序,处理大量的内存警告。在最坏的情况下,你会经常崩溃。
因此,您应该将图像调整为满足屏幕显示需求的最小尺寸,然后在imageView中设置该图像。这是我最喜欢的关于如何调整图片大小的博文:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way。
现在,问你的问题。您无法确定何时显示图像,但一旦缩放就会很快发生,您可以假设它在设置后立即显示。所以在后台线程上进行缩放。缩放完成后,向主线程发送消息,在imageView中设置缩放图像,然后执行任何操作。