通常,當我們向UIImageView添加大圖像(此圖像視圖是子視圖)時,它需要整個窗口大小,因爲UIImageView需要一些時間來調整圖像視圖的大小。我想獲得最小調整大小時間(afterDelay時間)。如何等到uiimageview調整目標c
self.capturedImgV.image =image;
[self performSelector:@selector(resizeImageView) withObject:nil afterDelay:1];
通常,當我們向UIImageView添加大圖像(此圖像視圖是子視圖)時,它需要整個窗口大小,因爲UIImageView需要一些時間來調整圖像視圖的大小。我想獲得最小調整大小時間(afterDelay時間)。如何等到uiimageview調整目標c
self.capturedImgV.image =image;
[self performSelector:@selector(resizeImageView) withObject:nil afterDelay:1];
找到解決方案。
dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector:@selector(resizeImageView) withObject:nil afterDelay:0];
self.capturedImgV.contentMode = UIViewContentModeScaleAspectFit;
});
我們可以調整UIImageView異步請求的大小。然後它會立即調整大小。
下面的文章討論了縮放圖像的不同方法,並提出了縮放不同類型圖像的時間。
http://nshipster.com/image-resizing/
的重要信息是方法之間的相對定時。 UIKit似乎表現出色,所以最好不要擔心和接受速度,因爲它可能對其做的很少,除了在後臺渲染較小的版本,然後將視圖設置爲縮小版本一氣呵成。
一個想到的是你可能會提供UIImageView
子類,並實現其drawRect:
方法做計時,但它看起來像,因爲UIImageView
進行了優化,直接繪製到屏幕上的圖像時繪製這不叫。
UIImageView類經過優化,可以將其圖像繪製到顯示屏上。 UIImageView不調用其子類的drawRect:方法。如果 您的子類需要包含自定義繪圖代碼,您應該改爲使用 子類UIView類。
感謝您的文章。 +1 – 2015-02-24 03:46:58
您對原始代碼感興趣,您將延遲設置爲1秒。這可能是你看到延遲的原因,大概一秒鐘左右。這個新代碼使用0作爲延遲。爲什麼不在原始代碼中使用0。它仍然在運行循環中計劃,所以應該給出相同的結果。 – 2015-02-24 09:39:26