通过 Afnetworking 2.0 从 URL 获取一半大小的 UIImage
Posted
技术标签:
【中文标题】通过 Afnetworking 2.0 从 URL 获取一半大小的 UIImage【英文标题】:Getting half size of UIImage from URL by Afnetworking 2.0 【发布时间】:2014-10-28 07:14:39 【问题描述】:我正在执行以下操作来确定块期间下载图像的大小,然后我将相应地设置 uiimageview 的大小。 如何通过 Afnetworking 获取 UIImage 的实际大小,请帮助我。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: str1]];
__weak UIImageView *weakImageView = cell.imageView;
[cell.imageView setImageWithURLRequest:request
placeholderImage:[UIImage imageNamed:@"Plceholder-50X60.png"]
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image)
NSLog(@"image = %f, imageheight = %f", image.size.width, image.size.height);
UIImageView *strongImageView = weakImageView; //make local strong reference to protect against race conditions
if (!strongImageView) return;
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error)
NSLog(@"Request failed with error: %@", error);
];
【问题讨论】:
【参考方案1】:图像的大小取决于磁盘上图像文件的名称。
如果文件的名称是Plceholder-50X60.png
,它的实际大小是image.size
和image.scale
1.0,但如果它的名称是Plceholder-50X60@2x.png
,它的实际大小是CGSizeMake(image.size.width*image.scale, image.size.height*image.scale)
和image.scale
2.0。
诀窍在imageNamed:
方法中,见imageNamed:
的参考:
在运行 ios 4 或更高版本的设备上,如果 设备的屏幕比例为 1.0。如果屏幕的比例为 2.0, 此方法首先搜索具有相同文件名的图像文件 附加一个@2x 后缀。例如,如果文件名是 按钮,它首先搜索按钮@2x。如果找到 2x,则加载 该图像并设置返回的 UIImage 对象的 scale 属性 到 2.0。否则,它会加载未修改的文件名并设置比例 属性为 1.0。
结论:无论图片文件的名称是什么,都可以使用CGSizeMake(image.size.width*image.scale, image.size.height*image.scale)
获取图片的实际大小。
【讨论】:
以上是关于通过 Afnetworking 2.0 从 URL 获取一半大小的 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
缓存图像,使其不会在 reloadData 调用时重新加载 - AFNetworking 2.0 setImageWithUrl
obj-c AFNetworking 2.0 POST 请求不起作用
AFNetworking 3.2.0 '配置的安全策略只能应用于具有安全基本 URL(即 https)的管理器