要在通用设备上支持iOS 7到8,我必须制作不同大小的同一图像的4份副本。
对于iPhone image@2x.png(iphone 4s,5,5s,6) image@3x.png(iphone 6 +)
适用于iPad image.png(ipad 2,ipad mini 1) image@2x.png(ipad 3,4,ipad mini 2,ipad Air)
图片真的让应用程序大小膨胀。
是否可以使用1个图像尺寸,最大的一个和缩放以适应uiimageview并使用图像视图缩小较小屏幕上的图像?
imageView.contentMode = UIViewContentModeScaleAspectFit;
或者是否绝对有必要以不同的尺寸制作所有4份副本?
它适用于模拟器和视网膜iPad 3上的所有设备,但我无法在其他设备上进行实际测试,并担心图像可能无法显示。
有没有人尝试使用1张大图片而不是副本?
答案 0 :(得分:5)
是的,理论上你可以使用最大分辨率的图像,让UIImageView使用模式Aspect Fit
缩小图像。
唯一的缺点是不支持视网膜的旧手机性能也较差。例如,当在UITableView的单元格上使用图像并滚动时,设备必须加载大图像,然后缩小图像,同时滚动它,它会在旧的,较慢的设备上断断续续。
所以,也许只是在列表视图中使用多个图像(应该只是缩略图,无论如何都很小,或者只是在这里使用较小的图像),但不要担心留在屏幕上的大图像而不滚动
确保使用允许imageNamed:
等缓存的方法在列表视图中加载图像。
只要您考虑缩小图像所涉及的性能损失,您就可以只使用最大的图像并将其缩小以适应。
顺便说一下,是的,我已经在App Store的真实应用程序中使用了这种技术。
我见过的另一种技术是包含低质量图像(1x或2x),如果在更高分辨率的设备(2x或3x)上运行,则会自动从网络下载高分辨率图像。也许对它很好,只能在wifi下载。