iOS UIScreen详解
获取主屏幕对象
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详解相关推荐
- iOS绘图详解-多种绘图方式、裁剪、滤镜、移动、CTM
iOS绘图详解 摘要: Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘 ...
- IOS UIView详解
文章目录 IOS UIView详解 1.官方类分析 2. UIView 常用的属性 2.1 UIView的圆角加阴影效果的实现 2.2 UIView 属性 2.2.1 UIView 几何属性 2.2. ...
- FreeEIM 来点新知识iOS UIScrollView详解
老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...
- iOS疯狂详解之AFNetworking图片缓存问题
AFNetworking网络库已经提供了很好的图片缓存机制,效率是比较高的,但是我发现没有直接提供清除缓存的功能,可项目通常都需要添加 清除功能的功能,因此,在这里我以UIImageView+AFNe ...
- iOS多线程详解:实践篇
iOS多线程实践中,常用的就是子线程执行耗时操作,然后回到主线程刷新UI.在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程.由于在iOS中除了主线程,其他子线程是独立 ...
- iOS疯狂详解之开源库
youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...
- [iOS] 国际化详解
PS:修改设备系统语言方法 设置 -> 通用 -> 语言与地区 -> iPhone 语言 Settings -> General -> Language & Re ...
- UE4 IOS打包详解
写在前面:因为是详解,所以可能写的有可能啰嗦,也有可能有些步骤是你经历过的,那么请忽略它,向下寻找可能的答案,如果没能解决你的问题,那么对此感到很抱歉,没能帮到你,欢迎你给我邮件: bluecode6 ...
- iOS模式详解runtime面试工作
简书:http://www.jianshu.com/p/19f280afcb24 对于从事 iOS 开发人员来说,所有的人都会答出「runtime 是运行时」,什么情况下用runtime?,大部分人能 ...
最新文章
- TCP客户机-服务器
- Topcoder SRM570 900 CurvyonRails
- python pip工具命令_python 工具链 包管理工具 pip
- navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
- Geometric-Transformations图像几何变换halcon算子,持续更新
- 在众多编程语言中,你可知哪种语言的安全性更高,安全漏洞最少?
- Python 用for循环实现猜数字游戏
- [Ansys Workbench] 模型网格划分练习
- rsyslod服务配置
- 入职必备两小时入门SVN(一)
- bat 调用class文件_拯救写框架的程序员!用字节码替代反射,实现任意函数调用...
- Javac源码简单分析之解析和填充符号表
- python列表append方法_Python列表append()方法
- sortby降序java_lodash多列sortBy降序
- python分箱统计个数_使用python 计算百分位数实现数据分箱代码
- CMD命令下获取昨日日期
- [Python] GDAL/OGR操作矢量数据(shp、GeoJSON)
- 《人民的名义》小说文本分析
- mysql最优库容_一种增加已达到设计库容的尾矿库存储量的方法
- 2019年帮解BUG,做设计,Android,WEB