上上周六app外包的人拷完了代码,预示着oc实战已经到来,此处应有掌声。
网上的说明:
作者:暗影忍喵
链接:http://www.zhihu.com/question/29522835/answer/44673107
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
比如你需要一个30pt*30pt的图标,那么这时你就需要跟美工(美术工程师)要三个文件:
一个是30px*30px的PNG图片,用原名来命名即可,例如sample.png。
一个是60px*60px的PNG图片,这个要用原名@2x来命名,例如sample@2x.png。
一个是90px*90px的PNG图片,这个要用原名@3x来命名,例如sample@3x.png。
这样把这三张图片导入进工程,你会神奇地发现,这三个文件居然会被iOS统一识别为sample.png,用的时候只需要[UIImage imageNamed:@"sample"]就行了。
那么讲一下应用场景。
1x的图标用于1:1的屏幕,非视网膜屏,例如iPhone 3GS、(/*20140414DEL*/ //早期iPhone 4、感谢 @池谷湧 指正)非视网膜屏的众多iPad等。
2x的图标用于1:2的屏幕,大部分视网膜屏,机型如(/*20140414ADD*/ iPhone 4、)iPhone 4S、iPhone 5、iPhone 5s、iPhone 6、iPad with Retina及后续的视网膜屏iPad等。
3x的图标目前应用于1:3的屏幕,即iPhone 6Plus,这个就比较特殊了,因为苹果为了方便开发者,想出来一个简便的实现方案,将2208*1242分辨率的图像压缩输出在1920*1080的屏幕上。
我自己的总结(可能不准确)
1,这样的写法必须是png格式。我实验了jpg不行。
2,6plus会先找@3x.png,没有会找@2x.png,再没有找1倍的png。
3,@2x.png和@3x.png在程序中,图片的高度和宽度都除以2或3,但在不同的机型上面,显示的截图大小不同。