2012-11-04 45 views
0

当我使用setImageWithURL加载在线图像时,我得到了0.000000, ,但是当我加载本地图像时,我得到了正确的宽度。使用SDWebImage为imageview加载图像,如何获取图像的宽度?

NSURL * url1=[NSURL URLWithString:@"http://img.hb.aicdn.com/7f46b5eb65320f18f797a4a26ebe9ba328b547832f7b3-KYR0Xn_fw192"]; 
UIImageView * img2=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 192,400)]; 
[img2 setImageWithURL:url1]; 
//[img2 setImage:[UIImage imageNamed:@"0.gif"]]; 
//load local image 

[self.view addSubview:img2]; 
CGFloat height1=img2.image.size.width; 
NSLog(@"%f",height1); 
+0

你不用SDWebImage显示任何代码 –

回答

0

我知道这是一个非常古老的问题,但我前一阵子得到了同样的问题,并认为我的回答能帮助别人谁运行到同样的问题。

要获得图像宽度,您应该使用SDWebImageManager独立下载图像。我很确定它是在他们的wiki页面中解释的。

下面是示例代码做任务:

-(UIImage *)downloadImageAsync:(NSString *)imageKey 
{ 
    NSLog(@"image key : %@",imageKey); 
    __block UIImage *returnedImage; 
    SDWebImageManager *manager = [SDWebImageManager sharedManager]; 
    [manager downloadWithURL:[NSURL URLWithString:imageKey] options:0 progress:^(NSUInteger receivedSize, long long expectedSize){ 
     NSLog(@"received size %d expected size %lld", receivedSize, expectedSize); 

    }completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType,BOOL finished){ 
     if(image && finished) { 
      returnedImage = image; 
     } 
    }]; 

    if(returnedImage == nil) { 
     NSLog(@"Returned Image Nil"); 
    } 
    return returnedImage; 
} 

所以当UIImage的完成下载,你可以得到它的宽度和高度。希望这可以帮助。

干杯。