2011-03-19 91 views
0

我正在使用TTImageView(從three20)來顯示網站上的圖像。TTImageView sizeToFit使幀大小爲零,但仍然顯示圖像

self.pic = [[TTImageView alloc] initWithFrame:CGRectMake(25, 25, 100, 100)]; 
self.pic.urlPath = @"http://www.google.com/images/logos/ps_logo2.png"; 
[self.pic sizeToFit]; 
NSLog(@"%f %f %f %f", self.pic.frame.origin.x, self.pic.frame.origin.y, self.pic.frame.size.width, self.pic.frame.size.height); 

圖像加載和完美顯示,但NSLog返回「25.000000 25.000000 0.000000 0.000000」。我如何得到這個返回正確的框架?

回答

0

它已經,因爲我用TTImageView一段時間,但我想象正在發生的事情是這樣的:

  1. 你問TTImageView你設置後從URL
  2. 立即加載一個新的形象URL路徑,你可以調用sizeTo Fit
  3. ...但實際上圖像還沒有被下載,所以幀被設置爲零,因爲那時沒有圖像

TTImageView將異步下載 - 即在後臺下載。您需要使用委託功能TTImageViewDelegate(記錄here)在圖像加載完成後接到回電,此時您應該撥打sizeToFit

目前,您正在啓動一個下載圖像的請求 - 這個過程可能需要幾秒鐘的時間才能完成,而且WiFi還需要相當長的時間,然後下一行要求調整幀大小。在確定圖像下載完成後,您需要致電sizeToFit,這是委託方法的用途。

+0

謝謝!我不知道爲什麼我沒有意識到這一點。 – Josh 2011-03-21 01:21:54

相關問題