加载网络图片到UIImageView中并适配retina屏
在UIImageView
中加载一个网络图片有一些需要注意的地方。因为retina屏使iPhone的屏幕的基础坐标系系统有一个像素到点的转换。以 iPhone 5为例,像素是640×1136 而点是320×568。这中间有一个2倍的缩放系数,即[UIScreen mainScreen].scale
。像素和点的关系是pixel = point × scale
。
还是以iPhone 5为例,假如有一张图片占据整个屏幕,并且图片命名有@2x
后缀,那么这张图正好适应这个全屏的UIImageView
并且不需要按照系数缩放。但是,如果这个图片的命名没有@2x
后缀,iOS
会放大这张图片两倍。而在加载网络图片的时候正是这个问题,因为图片名木有@2x
后缀。
下面是解决方法的代码,为了使用的方便,写成了一个category
。
这个方案的重点是 [UIImage imageWithCGImage]
。 这个方法会设置图片为retina,等价于图片命名有@2x
后缀。