iOS 设备现有的分辨率如下:
iPhone/iPod Touch
普通屏                         320像素 x 480像素       iPhone 1、3G、3GS,iPod Touch 1、2、3
3:2 Retina 屏           640像素 x 960像素       iPhone 4、4S,iPod Touch 4
16:9 Retina 屏         640像素 x 1136像素      iPhone 5、5s,iPod Touch 5

iPad
普通屏         768像素 x 1024像素              iPad 1, iPad2,iPad mini
Retina屏     1536像素 x 2048像素            New iPad,iPad 4

问一:只是分辨率不一样的情况,如一二或者四五相比,开发时提供两种分辨率就可以了,应用自动识别?
答:在 iPhone 5 跟 iPod Touch 5 没出之前,对于开发者来说,一二就是分辨率不同的区别而已,因为他们都是3.5寸的屏幕。并且,你细心的话会注意到,一二他们的分辨率是成倍的关系。
这给 iOS 的设计和开发都提供了方便,界面设计只需要设计一套,然后进行等比例放大缩小即可。

为了方便开发人员开发,iOS 中统一使用点(Point)对界面元素的大小进行描述。
所以对于一跟二,只需把屏幕大小都当成  320 x 480点 进行开发即可,点跟像素的换算关系如下:
普屏       1点 = 1像素 
Retina屏 1点 = 2像素 
iPad 上的开发也是这样,只需根据 768 x 1136点 进行开发即可。

而在 iPhone 5 跟 iPod Touch 5 的机器上,对于开发者来说,它的界面大小就是 320 x 568点,你只需根据这个大小去调整你的界面(如果需要调整的话)。
比如:我有一个按钮,要放在屏幕中间的位置,那么在界面大小为 320 x 480点 的设备上,只需设置它的 center 为 (320/2, 480/2) 位置即可,在 3:2 Retina 屏上系统这个按钮也可以正确的显示在中间;
而在屏幕大小为 320 x 568点 的设备上,你就设置它的 center 为 (320/2, 568/2)。
直接通过  [[UIScreen mainScreen] bounds] 即可获取到当前屏幕的基础分辨率,所以不用 hard code。

问二:只是尺寸不一样的情况,如四六相比,开发时完全没有影响?

答:开发时只需要关注分辨率即可,iPad 2 跟 iPad mini 屏幕尺寸不同,但是分辨率一致,所以完全没有影响,在 iPad 2 上可正常跑的 app,在 iPad mini 上也可正常跑。
 
1,现在最新出厂的设备,搭配的都是最新的操作系统。现在,Iphone4 ios6.0 以上了已经,而且基本都是Retina 视网膜屏了。也就是说,屏幕基本都是按照 320 * 568 点来布局了。
2,ios7 之前,状态栏单独占20点,即UIWindow 的frame 是(0,0,320,568), RootViewController 的frame 是 (0,20,320,548)。
ios7 以及7.1,状态栏不再单独占20点,即UIWindow 的frame 是(0,0,320,568), RootViewController 的frame 是 (0,0,320,568)。
总结:iphone4,iphone4s 是3.5英寸,retina屏,屏幕分辨率为640*960 像素,屏幕布局按照320*480 点来进行布局;iphone5,5s 都是4英寸,retina屏,屏幕分辨率为640*1136 像素,屏幕布局按照320*568 点来进行布局。前面确定了,接下来就要考虑ios系统版本的问题了,因为ios7的导航栏(44点)和状态栏(20点)不再单独占用高度,所以页面会自动伸展至568点。即页面的(0,0)原点是在屏幕左上角的。可ios7以下,导航栏(44点)和状态栏(20点)单独占用高度,即页面的(0,0)原点实际上是从导航栏下面开始的,即整个屏幕的(0,20)开始的。

最新文章

  1. Stm32F107VCT6硬件资源
  2. 一步一步来做WebQQ机器人-(五)(发送消息||完结)
  3. Windows出现带空格文件名无法删除
  4. Session共享的简单总结
  5. hdu 2845(dp基础题)
  6. java -Xmx3550m -Xms3550m -Xmn2g -Xss128k
  7. jump_ur.php通知模板
  8. leetcode题解||Reverse Integer 问题
  9. sphinx coreseek SetSortMode(SPH_SORT_ATTR_ASC, '') 对float 排序设置bug
  10. css3中的圆角属性
  11. Havel定理
  12. php memcached缓存集群
  13. springmvc框架下ajax请求传参数中文乱码解决
  14. iptables-过滤61开头的ip数据包
  15. 如何修改64位Eclipse中的代码字体大小
  16. Ubuntu下装QQ2014(http://my.oschina.net/oscfox/blog/315951)
  17. 终于将 SQL Server 成功迁移至 MySQL8.0 啦!!!
  18. vue基于组件实现简单的todolist
  19. Microsoft Visual Studio2013安装及单元测试
  20. Java compiler level does not match the version of the installed Java project facet解决办法

热门文章

  1. Object中的方法
  2. CentOS虚拟机通过主机WIFI上网
  3. reservoir sampling / random shuffle
  4. CPU密集型和IO密集型
  5. <c和指针>学习笔记2之数据和语句
  6. 使用 Addr2line 将函数地址解析为函数名
  7. URL辅助方法
  8. Docker Compose 多容器应用
  9. c#封装dll
  10. Hyperledger Fabric 替换couchDB