UIScreen详解:定时器,快照,亮度,尺寸等实现方法

UIScreen对象定义一些与硬件显示相关的属性。iOS设备有主屏幕或0到多个附加屏幕。

iOS8新增加了API定义竖屏和任意屏幕的CoordinateSpace方法,更加灵活。

获得屏幕

//获得主屏幕
let mainScreen = UIScreen.mainScreen()
//获得主屏幕及其附加的屏幕,一般情况下只有一个屏幕
let screens = UIScreen.screens()
坐标空间,iOS8新方法

//坐标空间,bounds随着屏幕方向变化而变化,如果横屏iPhone6为,(0.0, 0.0, 375.0, 667.0)
let coordinateSpace = mainScreen.coordinateSpace
//坐标空间,bounds始终时竖屏是的尺寸,iPhone6为(0.0,0.0,375.0,667.0)
let fixedCoordinateSpace = mainScreen.fixedCoordinateSpace

屏幕相关

//按点来计算,iPhone6为(0.0,0.0,375.0,667.0)
let bounds = mainScreen.bounds
//按点来算app window的frame,不包括状态条,iPhone6为(0.0,20.0,375.0,647.0)
let applicationFrame = mainScreen.applicationFrame
//按像素点来计算,物理屏幕的尺寸,iPhone6为(0.0,0.0,750.0,1334.0)
let nativeBounds = mainScreen.nativeBounds
//物理屏幕的比例因子,视网膜屏幕都是2.0
let nativeScale = mainScreen.nativeScale
//点和像素的比例,视网膜为2.0
let scale = mainScreen.scale
屏幕模式

let preferredModel = mainScreen.preferredMode.size
let preferredModelr = mainScreen.preferredMode.pixelAspectRatio

定时器

//定时器
let displayLink = mainScreen.displayLinkWithTarget(self, selector: Selector("refreshNumber"))
//120表示120帧(2秒)重复一次
displayLink.frameInterval  = 120
displayLink .addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
屏幕亮度

//调整屏幕的亮度,0-1之间的数字,亮度只在app为active状态有效,background状态会恢复
mainScreen.brightness = 0.5
//设置为YES时,会在屏幕上加一层dimming view,所以设置为0时也会有一定的亮度哦
mainScreen.wantsSoftwareDimming = true
屏幕快照

//屏幕快照:参数表示是否立即生产快照,如果立即生产快照则之后的一些变化不会被记录,返回一个UIView,能够对view添加内容,但是不能修改layer.contens。
mainScreen.snapshotViewAfterScreenUpdates(true)
UIScreen的相关通知
//有四个通知
UIScreenDidConnectNotification
UIScreenDidDisconnectNotification
UIScreenModeDidChangeNotification
UIScreenBrightnessDidChangeNotification

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值