苹果推出了 iOS 8、iPhone 6 / 6 Plus、Xcode 6 等新产品、新工具,多了两种屏幕尺寸。关于如何适配 iPhone 6 / 6 Plus,我查阅了一些资料,总结了一些信息,列在下面,与大家探讨。
首先几篇介绍文章:
http://blog.sunnyxx.com/2014/09/10/iphone6-resolution/
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
http://stackoverflow.com/questions/25818845/how-do-vector-images-work-in-xcode-6-i-e-pdf-files
http://www.zhihu.com/question/25281284/answer/30445170
我的简单总结:
iPhone 5s 分辨率 320×568 pt,像素 640×1136,@2x
iPhone 6 分辨率 375×667 pt,像素 750×1334,@2x
iPhone 6 Plus 分辨率 414×736 pt,像素 1242×2208,@3x(注意,在这个分辨率下渲染后,图像等比降低分辨率至 1080×1920)
iPhone 6 Plus 因为是 1242×2208 再 downscale 到 1080×1920,所以怎么也做不出像素完美的图了,不管按 1242×2208 还是 1080×1920 设计都不行。
另一方面,iPhone 5s、iPhone 6、iPhone 6 Plus 的屏幕长宽比例,都约等于 1.78,基本一致。
适配 iPhone 5s 的工程,在 Xcode 6 中用 iPhone 6 / 6 Plus 的模拟器打开一看,很可能看起来完全正常。自动放大了,没有黑边和比例失调的地方。只不过因为放大了,图标可能会稍微有点模糊。
至此,要求不高的人可以止步了。设计可以还按 iPhone 5s 的 640×1136 像素,程序也基本不用特殊适配,iPhone 5s 适配好了,iPhone 6 / 6 Plus 自动等比放大,效果也还过得去。
下面一步,追求更完美的人可以考虑。Xcode 6 支持矢量图了!(目前仅支持 .pdf 格式。)
Xcode 6 的支持方式是,在 build 的时候自动生成 @1x、@2x、@3x 的位图。
因为还是生成了位图,所以老版本 iOS 仍然兼容,不会有问题。另外,在 build 时生成位图,会增加 build 时的计算量,但对运行时的效率不会有负面影响。
这样做省了自己导出不同尺寸图片的这一步,只要提供 @1x 大小的 .pdf 格式图片即可。
如果布局采用苹果强烈推荐的 Auto Layout,图片使用矢量,那么无论苹果再怎么改分辨率,都会比较轻松~
使用 Auto Layout,我们只要表达出 UIView 应该靠左、靠右、居中、边距多少等信息,Auto Layout 根据设备尺寸自动计算各 UIView 的 frame,即使苹果又出了新的分辨率也不怕。
使用矢量图,即使哪天苹果又要用 @4x 的图片,也不用重新做图。
总之,要告别绝对定位、手工计算并写死 frame 的时代了~
本文作者:Betty | 本文地址: https://myfairland.net/iphone-6-plus/
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明
还是矢量图好用
不错,学习了
你的Blog好像缓存出了问题,首页变成移动版的了
这年头长得帅的被叫做帅哥,丑的也被叫帅哥。
长得高的被叫帅哥,矮的也被叫帅哥。
唯独我总被别人叫做死胖子……