2012-11-04 48 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的完成下載,你可以得到它的寬度和高度。希望這可以幫助。

乾杯。