我正在加載一個5MP圖像到一個UIImageView調用self.imagecontainer.image = myUIImage
。 myUIImage是來自iPhone相機的圖像。iPhone - 知道什麼時候UIImageView加載了它的圖像
這需要一段時間才能在屏幕上看到圖像,即使我可以縮短這個時間,當圖像真正顯示在屏幕上時,我需要啓動一個過程。
我怎麼知道圖像被加載和顯示,而不僅僅是UIImageView的處理?
我正在加載一個5MP圖像到一個UIImageView調用self.imagecontainer.image = myUIImage
。 myUIImage是來自iPhone相機的圖像。iPhone - 知道什麼時候UIImageView加載了它的圖像
這需要一段時間才能在屏幕上看到圖像,即使我可以縮短這個時間,當圖像真正顯示在屏幕上時,我需要啓動一個過程。
我怎麼知道圖像被加載和顯示,而不僅僅是UIImageView的處理?
那麼......第一件事是你不應該在imageView中設置一個500萬像素的圖像。 imageView僅用於在屏幕上顯示,即使縮放設置用於顯示目的的圖像,原始圖像也會保留,因此您的內存佔用量會增加。如果您充其量做到這一點,您將會遇到性能不佳的應用程序,它會處理大量內存警告。最糟糕的是,你會經常崩潰。
因此,您應該將圖像調整爲滿足屏幕顯示需求的最小尺寸,然後在imageView中設置該圖像。這是我最喜歡的關於如何調整圖像大小的博文:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way。
現在,你的問題。您無法確切知道圖像何時顯示,但一旦縮放後就會發生如此之快,您可以假定只要您設置它就會立即顯示圖像。所以你在後臺線程上進行縮放。當縮放完成後,向主線程發送消息以在imageView中設置縮放圖像,然後執行任何你想要的操作。
你真的很喜歡這個博客!剛剛看到你發佈這個地方:) – 2011-04-11 16:28:52
只是一個巧合。有人問了一個相關的問題。但我確實在我的應用中使用了Trevor的代碼。你會驚訝(或不是)有多少人做錯了。 – XJones 2011-04-11 16:31:18
哈,剛纔認識@Oliver問了兩個問題。無論如何,希望我能幫上忙。 – XJones 2011-04-11 16:35:44