获取主屏幕对象

UIScreen *screen =[UIScreen mainScreen];
复制代码

截屏

利用的当前在Screen上的部分生成一个UIView,利用这个UIVIew可以做一些全屏的动画。注意,这样的效果是比生成一副图片的效率要高的。

- (UIView * nonnull)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
复制代码

效果如下:

坐标系

coordinateSpace 这个函数返回遵循UICoordinateSpace协议的对象,这个协议封装了坐标系的信息以及坐标系转换的函数。UIView和UIScreen的对象都实现了这个协议。

 UIScreen * screen = [UIScreen mainScreen];id<UICoordinateSpace> coor = [screen coordinateSpace];
复制代码

把UIView的一个点进行坐标系转换到固定的UIScreen坐标系

 [customView convertPoint:CGPointMake(30, 30) toCoordinateSpace:customView.window.screen.fixedCoordinateSpace];
复制代码

fixedCoordinateSpace 和上文CoordinateSpace唯一不同的是,这个返回的是 portrait-up的坐标系,也就是说是不变的。而CoordinateSpace会随着设备下旋转而改变。

Bounds/NativeBounds

·bounds 以点为单位,随着屏幕方向变化而变化 ·NativeBounds 以像素为单位,固定为portrait-up的坐标系 例如: 监听屏幕旋转并且log

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{UIScreen * screen = [UIScreen mainScreen];[self LogFrame:[screen bounds]];[self LogFrame:[screen nativeBounds]];
}
复制代码

竖直方向

1.打印:0.000000 0.000000 320.000000 480.000000
2.打印: 0.000000 0.000000 640.000000 960.000000
复制代码

横屏方向:

1.打印: 0.000000 0.000000 480.000000 320.000000
2.打印: 0.000000 0.000000 640.000000 960.000000
复制代码

NativeScale/Scale

从一个point到像素点的转换关系。例如:在普通屏幕上,1个点对应一个像素,5s和6等视网膜显示屏1个点对应4个像素。在6p上,一个点对应9个像素。 亮度

通过修改属性brightness来修改亮度。

[UIScreen mainScreen].brightness =0.9;
复制代码

Screen Mode有三个属性

 preferredMode 偏好的显示模式availableModes 支持的显示模式currentMode 当前的显示模式
复制代码

返回对象是UIScreenMode,包含了size 屏幕的大小(以像素为单位)和pixelAspectRatio(像素的横纵比)

    UIScreen * screen = [UIScreen mainScreen];UIScreenMode  *perferedMode = screen.preferredMode;NSLog(@"Width:%f Height:%f AspectRatio:%f",perferedMode.size.width,perferedMode.size.height,perferedMode.pixelAspectRatio);
复制代码

结果为:

 Width:640.000000 Height:1136.000000 AspectRatio:1.000000
复制代码

iOS UIScreen详解相关推荐

  1. iOS绘图详解-多种绘图方式、裁剪、滤镜、移动、CTM

    iOS绘图详解 摘要: Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘 ...

  2. IOS UIView详解

    文章目录 IOS UIView详解 1.官方类分析 2. UIView 常用的属性 2.1 UIView的圆角加阴影效果的实现 2.2 UIView 属性 2.2.1 UIView 几何属性 2.2. ...

  3. FreeEIM 来点新知识iOS UIScrollView详解

     老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...

  4. iOS疯狂详解之AFNetworking图片缓存问题

    AFNetworking网络库已经提供了很好的图片缓存机制,效率是比较高的,但是我发现没有直接提供清除缓存的功能,可项目通常都需要添加 清除功能的功能,因此,在这里我以UIImageView+AFNe ...

  5. iOS多线程详解:实践篇

    iOS多线程实践中,常用的就是子线程执行耗时操作,然后回到主线程刷新UI.在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立 ...

  6. iOS疯狂详解之开源库

    youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...

  7. [iOS] 国际化详解

    PS:修改设备系统语言方法 设置 -> 通用 -> 语言与地区 -> iPhone 语言 Settings -> General -> Language & Re ...

  8. UE4 IOS打包详解

    写在前面:因为是详解,所以可能写的有可能啰嗦,也有可能有些步骤是你经历过的,那么请忽略它,向下寻找可能的答案,如果没能解决你的问题,那么对此感到很抱歉,没能帮到你,欢迎你给我邮件: bluecode6 ...

  9. iOS模式详解runtime面试工作

    简书:http://www.jianshu.com/p/19f280afcb24 对于从事 iOS 开发人员来说,所有的人都会答出「runtime 是运行时」,什么情况下用runtime?,大部分人能 ...

最新文章

  1. TCP客户机-服务器
  2. Topcoder SRM570 900 CurvyonRails
  3. python pip工具命令_python 工具链 包管理工具 pip
  4. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
  5. Geometric-Transformations图像几何变换halcon算子,持续更新
  6. 在众多编程语言中,你可知哪种语言的安全性更高,安全漏洞最少?
  7. Python 用for循环实现猜数字游戏
  8. [Ansys Workbench] 模型网格划分练习
  9. rsyslod服务配置
  10. 入职必备两小时入门SVN(一)
  11. bat 调用class文件_拯救写框架的程序员!用字节码替代反射,实现任意函数调用...
  12. Javac源码简单分析之解析和填充符号表
  13. python列表append方法_Python列表append()方法
  14. sortby降序java_lodash多列sortBy降序
  15. python分箱统计个数_使用python 计算百分位数实现数据分箱代码
  16. CMD命令下获取昨日日期
  17. [Python] GDAL/OGR操作矢量数据(shp、GeoJSON)
  18. 《人民的名义》小说文本分析
  19. mysql最优库容_一种增加已达到设计库容的尾矿库存储量的方法
  20. 2019年帮解BUG,做设计,Android,WEB

热门文章

  1. Spark 应用程序调优
  2. JAVA的输入输出基本操作样例
  3. IntelliJ IDEA中JAVA连接MYSQL
  4. 从opensuse 12.3 升级到 opensuse13.1体验
  5. 如何完整迁移git仓库到另一个远程地址
  6. js进阶 10-8 伪类选择器有哪几类(自己不用,永远不是自己的)
  7. Android Studio添加文件注释头模板?
  8. PyInstaller将python脚本打包成exe可执行程序
  9. 微博 Docker 化混合云平台大剖析
  10. 部署exchange2010三合一:之七:安装证书服务器