IOS 屏幕尺寸、分辨率、点之间的相互关系
2015-08-27 09:41
459 查看
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)开始的。
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)开始的。
相关文章推荐
- iOS使用技巧---高效使用你的xcode
- IOS-NSSortDescriptor的使用---排序
- iOS-浅谈runtime运行时机制02-runtime简单使用
- 你是我的小呀小苹果——苹果ios编程第一课
- IOS之秒表计时器
- IOS学习中的TableView的用法
- iOS多线程-05-多图下载
- iOS7 导航栏,view适配
- iOS开发——高级技术&签名机制
- iOS-提高iOS开发效率的方法和工具
- iOS开发——高级技术OC篇&运行时(Runtime)机制
- iOS开发——高级技术精选OC篇&Runtime之字典转模型实战
- iOS开发——高级技术&广告服务
- iOS—Xcode 7真机测试
- iOS完整学习路线图
- iOS开发中调用系统相册、相机 显示中文标题
- 苹果开发者账号如何多人协作进行开发和真机调试XCode
- IOS不用AutoLayout也能实现自动布局的类(4)----MyTableLayout横空出世
- iOS事件传递过程
- IOS 将类的声明,类的定义,主函数分开放的代码。