根据屏幕密度下载不同的资源

时间:2015-01-23 22:55:50

标签: ios iphone ios8 uiimage assets

所以我知道有一种非常简单的方法让IOS为当前运行的设备选择正确大小的资产,即:name.png,name @ 2x.png,name @ 3x.png。

我创建的应用程序有数百张图像,如果用户要查看它们,我只想下载,或者从网址中异步提取:

let url = NSURL(string: image.url)
let data = NSData(contentsOfURL: url!)
imageURL.image = UIImage(data: data!)

我是否必须创建一些方法来检查设备类型或检查屏幕分辨率,以查看图像在应用程序中时将使用的资产。或者是否有某种帮助?

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。在应用中,您可以根据http://.../image.png修改图片的网址路径(例如,将http://.../image@2x.png转换为UIScreen.mainScreen().scale)。通过命名图像@ 2x或@ 3x没有自动缩放 - 它们将大2或3倍,您必须正确设置UIImageView大小才能显示它们。

或者,您可以将比例作为GET参数http://.../image.png?imageScale=2传递给URL,并让您的Web服务处理逻辑并返回正确的图像。正确调整UIImageView的大小 - 对于@ 1x图像的尺寸仍然很重要。