Apple开发者文档中关于UIApplication/UIScreen/UIDevice的简述

UIApplication/UIScreen/UIDevice平常用的很少;但毕竟是属于UIKit的重要组成部分,有必要了解一下。

UIDevice

通过UIDevice可以获取一个描述当前设备的单例。你可以获取以下设备相关的信息:设备名,设备型号,操作系统名称和版本。

我们还可以通过UIDevice实例检测设备的变化,比方横屏还是竖屏。Orientation属性代表了设备的方位,也可以通过注册UIDeviceOrientationDidChangeNotification通知消息来实时获取方位变化。在要使用这些数据前,必须先通过beginGeneratingDeviceOrientationNotifications方法调用开启该功能,然后调用endGeneratingDeviceOrientationNotifications禁用该功能。

此外,我们还能通过该实例获取关于电量状态变化的信息和通知信息(batteryState,batteryLevel)。还有就是关于接近传感数据(proximityState),接近传感器用于侦测用户是否拿着手机并紧贴在脸庞。同样的,只有在必要的时候才开启以上两项功能。

从iOS4.2开始,我们可以使用playInputClick实例方法响应用户自定义的键盘操作。 UIApplication

UIApplication是一个控制和协调运行中应用的中心。任何一个应用有且仅有一个UIApplication(或是一个UIApplication的一个子类)。一旦应用启动,,UIApplicationMain就会被调用。在应用的某个任务中,这个函数会创建一个UIApplication单例。因此,你可以使用sharedApplication来获取该对象。

UIApplication的一个重要作用,就是它是所有用户操作事件传递链的开始。它也将由UIControl类传递给它的动作信息,进一步分发合适的目标类。此外,UIApplication对象维护了所有在当前APP中打开的windows的列表。应用对象一般都会有一个代理,用于处理应用运行时信息,如:应用开启,内存不足,应用关闭。因此应用有机会处理这些重要的信息。

APP之前可以通过openURL方法进行协作,如处理资源类似email和图像文件。比方,一个应用打开了调用了email URL,使用这个方法可以打开邮件客户端并显示信息。

UIApplication接口允许你管理设备相关的行为,具体如下:

在设备方位变化时,控制应用的反应;

临时阻断触摸事件。

开启和关闭接近传感器。

注册远程通知消息。

触发撤销或重做UI (applicationSupportsShakeToEdit)

检测一个安装好的应用是否可以打开一个URL(canOpenURL:).

在应用退到后台前,让它在后台还能再运行一下,完成一些收尾工作。

调度或中止本地通知。

协同处理接收到的远程控制事件。

重新恢复应用的状态。

绝大多数的应用不需要创建UIApplication子类,只需要使用UIApplication的代理函数管理系统和应用之间的交互。

如果你需要实现自定义一个事件或动作分发系统时,你才需要创建UIApplication子类。这样的话,你需要重写sendEvent或sendAction方法来自定义分发机制。我们尽量避免这种情况。 UIScreen

UIScreen对象定义了与硬件显示屏相关的属性。iOS设备有个主屏,外加0个或多个附屏。这个类可以获取所有与设备相关的屏幕。Screen类定义了bounds,以及其他属性如对比度。

在iOS8之前,screen的bounds属性一定反映了屏幕在竖屏情况的尺寸。旋转屏幕成为横屏或倒立情况都不会改变bounds属性。从iOS8开始,bounds属性参考设备方位的变化。依赖屏幕尺寸的应用可以使用fixedCoordinateSpace属性来修正点在坐标中的位置。

当用户连接或断开屏幕时,系统会发送通知给应用。利用代理可以长时间的监控通知信息。连接和断开的通知可能随时发生,也许这时你的应用在后台被挂起。在应用挂起时,通知会保存在队列中,直到你的app’在前台或后台又开始运行时。

但系统通知外部屏连接上时,你可以随意使用这个额外的屏幕空间。为使用这个空间,需要创建uiwindow对象,为新的screen进行赋值,显示到window上。屏幕支持多种分辨率,其中使用不同的像素宽高比。屏幕对象使用最普通的屏幕模式,你也可以设置适合你的模式。比方,如果你在游戏应用中使用OpenGL

ES,依据640*480设计了纹理,你可以更新屏幕模式为更高的分辨率。

总结:1,开发中接触到UIApplication/UIScreen/UIDevice的机会不多;而且大多是简单的应用;对其有个大概了解即可;2,以上内容都翻译自苹果官方内容,以下为链接https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/index.html#//apple_ref/occ/cl/UIDevicehttps://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/cl/UIApplicationhttps://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/cl/UIScreen

学的越多,做的越快;学的越多,做的越好;

贪婪是最真实的贫穷,满足是最真实的财富

Apple开发者文档中关于UIApplication/UIScreen/UIDevice的简述

相关文章:

你感兴趣的文章:

标签云: