都说作iOS开发比Android省心,那么iOS是如何作到这一点的呢?咱们今天就来分析一下,但愿对作iOS的界面设计的同窗有点帮助。html
iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类ios
普屏分辨率 320像素 x 480像素编程
Retina分辨率 640像素 x 960像素app
普屏 768像素 x 1024像素post
Retina屏 1536像素 x 2048像素spa
尽管有上面列出的4种分辨率状况,不过细心的人会发现,对于Retina屏的分辨率始终保持为普屏的2倍,这对于iOS的设计仍是开发的时候提供的莫大的方便,天然能够想到对于界面设计而言,只须要设计一套,而后进行等比例放大缩小便可。实际进行设计与开发的时候,也确实是这样,Apple为了防止在交流过程当中(尤为对于编程实现)分辨率对思惟的迷惑,统一使用点(Point)对界面元素的大小进行描述,例如: 设计
界面描述 320点 x 480点htm
界面描述 768点 x 1024点blog
普屏 1点 = 1像素 图片
Retina屏 1点 = 2像素
这样,无论咱们是在为普屏仍是Retina屏进行设计与开发,咱们均可以清楚地,而且统一地使用点对界面元素的大小进行描述了。
如今咱们可以用统一的语言描述两种屏幕的界面元素的大小,可是咱们如何针对不一样屏幕设置不一样分辨率的图片素材呢?难道说开发的时候咱们要在每个图片加载的地方进行,添加判断当前设备是不是Retina屏的语句,而后加载对应的图片吗?固然能够这样作,可是iOS有一套更简便的方法进行自动加载,即经过规范的文件名命名。例以下面这条加载图片的语句:
[UIImage imageNamed:@"pic.png"]]
在实际运行时,若是发现当前的设备是Retina屏,会自动寻找图片"pic@2x.png" ,自动加载针对Retina屏的图片素材,是否是很方便呢?
因此,咱们在制做iOS设备时,能够仿照下面这样,对图片文件进行分类,对于640x960文件夹里的图片,文件命名添加"@2x"便可。
能够参考下面两个文档:
请务必按照文档中描述的规范进行图标的命名!!
PS:一些额外的图标参考
a 图标会自动添加高亮效果,若是不须要,能够在plist中明确指定UIPrerenderedIcon的键值去掉
b 57像素的普屏的iPhone图标,图标圆角的半径为10像素
c 114像素Retina屏的iPhone图标,图标圆角的半径为20像素
d 512像素的用于iTunes/App Store的图标,在实际显示是会被缩放到175像素进行显示(但提交是不能够提交175像素)
e 72像素的普屏iPad图标,图标圆角的半径为13像素
f 144像素Retina屏iPad图标,图标圆角的半径为26像素
g 50像素iPad的Spotlight搜索图标的最终视觉大小是48像素,缘由是iOS会对图标的每一个边去掉1个像素,添加阴影效果
h 100像素Retina屏的Spotlight搜索图标的最终视觉大小是96像素,缘由同上,此次是每边减2个像素