当我使用setImageWithURL加载在线图片时,我得到了0.000000, 但是当我加载本地图像时,我得到了正确的宽度。
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 :(得分:0)
我知道这是一个非常古老的问题,但我前一段时间遇到了同样的问题,并认为我的答案可以帮助遇到同样问题的人。
要获得图像宽度,您应该使用SDWebImageManager独立下载图像。我很确定它在他们的维基页面中有解释。
以下是执行任务的示例代码:
-(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完成下载时,您可以获得它的宽度和高度。希望这会有所帮助。
干杯。