Screen
定义了硬件相关的显示属性。
概述
iOS设备有一个主屏幕和0个或多个外接屏幕。tvOS设备有一个主屏幕。使用此类获取连接到设备的screen对象。每个screen对象定义相应显示设备的矩形边框和其他设备信息。iOS8及以后screen bounds边框属性考虑到了屏幕的朝向。意味着横屏跟竖屏的显示是不一样的。依赖屏幕尺寸的应用可以通过fixedCoordinateSpace属性来计算。(iOS8之前screen bounds只有竖屏尺寸。旋转屏幕不会改变screen bounds属性。)
处理屏幕连接断开通知
当用户连接断开屏幕连接的时候,系统发送消息给应用。长生命周期的对象保持持续监听此通知,例如说app delegate。连接跟断开消息任何时间都可能收到,甚至是应用后台的情况下。如果应用进入后台时收到通知,这个消息排队等待,在应用进入前台发送到监听对象上。
当收到外屏连接通知,可以随时使用额外的屏幕显示。使用外接屏幕,创建一个window对象,绑定到其screen属性上并显示window。这样应用在前台的时候就会显示window对象的内容了。如果不创建window对象,或者创建了不显示window对象,那么再外接显示上显示黑色区域。
UIScreen处理屏幕的连接断开通知。连接方法处理创建第二个window分配给新连接的屏幕,请求一个应用的view controllers(自定义view controller属性)增加一些内容的window上,并且显示。断开方法处理window的释放并且通知主view controller以便调整显示。
配置外接显示的模式
多屏显示支持多种分辨率,一些使用不同的像素比。UIScreen对象有一个大多数设备都可以的默认配置,但是你也可以改变模式以更好的适配外接显示。例如,如果使用OpenGL ES并且纹理为640x480像素的屏幕设计,可能需要提高屏幕显示模式以适配高分辨率。
如果你打算改变显示模式,需要在给Screen对象绑定window对象之前。UIScreenMode类定一个屏幕模式,可以通过screen的availableModes属性列举支持的模式。
Last updated
Was this helpful?