TTImageView sizeToFit使帧大小为零但仍显示图像

时间:2011-03-19 20:45:05

标签: iphone objective-c ios three20

我正在使用TTImageView(来自three20)来显示来自网络的图像。

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”。如何让它返回正确的框架?

1 个答案:

答案 0 :(得分:0)

我使用TTImageView已经有一段时间了,但我想象的是以下内容:

  1. 您要求TTImageView从网址
  2. 加载新图片
  3. 在设置网址路径后立即,调用sizeTo Fit
  4. ...但实际上还没有下载图像,所以当时没有图像存在,因此框架设置为零
  5. TTImageView将异步下载 - 即在后台。您需要使用委托函数TTImageViewDelegate(记录为here)在图像加载完成后回复,此时您应该调用sizeToFit

    目前,您正在启动下载图像的请求 - 这个过程可能需要几秒钟的3G时间,而且仍需要相当长的时间才能使用WiFi,然后下一行要求调整帧大小。在确定图像下载完成后,您需要调用sizeToFit,这是委托方法的用途。