A UIScreen object contains the bounding rectangle of the device’s entire screen. When setting up your application’s user interface, you should use the properties of this object to get the recommended frame rectangles for your application’s window.
UIScreen对象包含了整个屏幕的边界矩形。当构造应用的用户界面接口时,你应该使用该对象的属性来获得推荐的矩形大小,用以构造你的程序窗口。
以下列出的属性和操作是我用过的。
+ mainScreen Returns the screen object representing the device’s screen.
bounds property Contains the bounding rectangle of the screen, measured in points. (read-only)
scale property The natural scale factor associated with the screen. (read-only)
[plain]
CGRect bound = [[UIScreen mainScreen] bounds]; // 返回的是带有状态栏的Rect
float scale = [[UIScreenmainScreen] scale]; // 得到设备的自然分辨率
对于scale属性需要做进一步的说明:
以前的iphone 设备屏幕分辨率都是320*480,后来apple 在iPhone 4中采用了名为Retina的显示技术,iPhone 4采用了960x640像素分辨率的显示屏幕。由于屏幕大小没有变,还是3.5英寸,分辨率的提升将iPhone 4的显示分辨率提升至iPhone 3GS的四倍,每英寸的面积里有326个像素。
scale属性的值有两个:
scale = 1; 的时候是代表当前设备是320*480的分辨率(就是iphone4之前的设备)
scale = 2; 的时候是代表分辨率为640*960的分辨率

判断屏幕类型:
[plain]
// 判断屏幕类型,普通还是视网膜
float scale = [[UIScreen mainScreen] scale];
if (scale == 1) {
bIsRetina = NO;
NSLog(@”普通屏幕”);
}else if (scale == 2) {
bIsRetina = YES;
NSLog(@”视网膜屏幕”);
}else if (scale == 3) {
bIsRetina = YES;
NSLog(@”Plus视网膜屏幕”);
}else{
NSLog(@”unknow screen mode !”);
}
对dpi和ppi的理解:
DPI是每英寸的点数,可以简单理解为点的密度。
PPI是每英寸的像素数,可以简单理解为像素密度。
点和像素有区别吗?很多时候,一个点 = 一个像素。但是,并不尽然,如iPhone的视网膜屏幕,它一个点包含了四个像素,大大提高了显示清晰度。
使用UIScreen获取的bounds和frame,都是点的尺寸,而非像素尺寸。例如,在视网膜屏的iPhone4上,我获取的applicationFrame大小是320x460,很明显它代表的是点的数量。假如你要显示一张图,如果该图原大小是100x200,那么显示在这样的屏幕上,它的实际显示出来的尺寸将只有原来大小的一半,但它的像素数并未改变。更加需要考虑的是,如果你要对这张图进行缩放,那么缩放率该按照实际显示尺寸计算,还是按照实际像素数计算?这一块很重要,曾走了不少弯路,答案是前者。

iphone分辨率中的scale参数相关推荐

  1. iphone分辨率和点

    iphone分辨率和点 iphone1~3 320*480 分辨率 320*480 点iphone4 640*960 分辨率 320*480 点iphone5 640*1136 分辨率 320*568 ...

  2. 深度对抗学习在图像分割和超分辨率中的应用

    原文:http://blog.csdn.net/shenziheng1/article/details/72821001 深度对抗学习在图像分割和超分辨率中的应用 原创 2017年05月31日 16: ...

  3. iphone开发中数据持久化之——属性列表序列化(一)

    数据持久化是应用程序开发过程中的一个基本问题,对应用程序中的数据进行持久化存储,有多重不同的形式.本系列文章将介绍在iphone开发过程中数据持久化的三种主要形式,分别是属性列表序列号.对象归档化以及 ...

  4. 学习iPhone开发中 sqlite3的使用

    由于我主要负责我们小组项目数据库模块的部分所以这几天都一直在研究在iphone中最为常用的一个简单数据库sqlite,自己也搜集很多资料,因此在这里总结一下这几天的学习成果: 1.Sqlite操作简明 ...

  5. iphone开发中图像处理相关要点

    iPhone图像通常存储在以下4个地方: 相册(PhotoAlums):用户可以使用UIImagePickerController类提供的交互对话框从该相册中获取图像. 应用程序包:将图像与可执行程序 ...

  6. iPhone开发中的技巧整理(四)

    iphone开发笔记 退回输入键盘 - (BOOL) textFieldShouldReturn:(id)textField{ [textField  resignFirstResponder]; } ...

  7. iPhone 3G(是iPhone系列中的第二代)

    iPhone 3G iPhone 3G是一款苹果公司旗下的智能手机,是iPhone系列中的第二代.2008年6月9日,这款手机在苹果公司全球软件开发者年会中正式发布.iPhone 3G的内部结构与前代 ...

  8. IPhone 4(是iPhone系列中的第四代)

    IPhone 4 iPhone 4是蘋果公司設計及銷售的一款智能手機,是iPhone的第四代.它的前作是iPhone 3GS,而後續型號是iPhone 4S.隨著一系列重大的資訊洩漏事宜,蘋果公司於2 ...

  9. iPhone开发中的技巧整理

    1.NSCalendar用法  -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initW ...

  10. iPhone开发中的技巧整理(二)

    1.NSCalendar用法 -(NSString *) getWeek:(NSDate *)d { NSCalendar *calendar = [[NSCalendar alloc] initWi ...

最新文章

  1. android hal 驱动,AndroidHAL-Teseo
  2. R语言ggplot2可视化使用ggplot2包patchwork包在可视化结果(右上角)中插入logo图片
  3. H5 canvas 绘图
  4. Spring4.1新特性——Spring MVC增强
  5. mybatis的配置文件中selectKey标签问题
  6. 显示查找结果_AB 综合 | 如何查找到更多的罗克韦尔资料
  7. 淘宝Hadoop现有测试框架探幽
  8. 利用PowerDesigner15在win7系统下对MySQL 进行反向project(二)
  9. zerorpc java_Zerorpc 支持暴露多个远程Api接口类
  10. 联想电脑linux显卡驱动,哪里下载独立显卡驱动 急急急!!联想y470如何在linux下安装显卡驱动啊?你好...
  11. 阿里P8工程师强烈推荐,60本工程师必备读本
  12. linux 声卡驱动测试,Linux声卡驱动移植和测试
  13. 观《当幸福来敲门》有感
  14. 360游戏大厅打不开HTML游戏,360游戏大厅打不开怎么办
  15. Gartner:浪潮存储进入分布式存储前三
  16. html中图片亮度调节,HTML+CSS+JS 模仿 Win10 亮度调节效果
  17. 用iPhone开高达:日本推出可驾驭的真实重型机甲
  18. 电脑版适合什么插件HTML,推荐一些好用的Chrome插件
  19. 每日分享html之3个logo、1个背景、1个button
  20. android studio 中小米系列手机布局问题

热门文章

  1. 崔荣容,英语如法入门1-50讲
  2. 元转万元单位换算_excel中如何将元换算成万元 excel 万单位 不要万字
  3. VMware 配置虚拟机固定IP指南
  4. Adafruit GFX Library字体规范
  5. 汇新杯选手专访:旅游看人海?VR+旅游让你身临其境
  6. 前端开发 20 年变迁史
  7. ORACLE表空间碎片整理
  8. Mysql - 巧用join来优化sql
  9. 秘密行动倒计时丨DC86021行动指挥部致全体极客伙伴的一封密信
  10. 【历史上的今天】9 月 21 日:世界上第一部商用移动电话;苹果发布 iPhone 5 ;Mini-SATA 研制成功