《iOS 6高级开发手册(第4版)》——1.5节处理基本的方向

1.6 处理基本的方向
iOS 6高级开发手册(第4版)
UIDevice类使用内置的orientation属性获取设备的物理方向。iOS设备支持这个属性的7个可能的值。

UIDeviceOrientationUnknown`:向目前未知。
UIDeviceOrientationPortrait:Home``键按下。
UIDeviceOrientationPortraitUpsideDown:Home键升起。
UIDeviceOrientationLandscapeLeft:Home键在左边。
UIDeviceOrientationLandscapeRight:Home键在右边。
UIDeviceOrientationFaceUp:设备正面朝上。
UIDeviceOrientationFaceDown:设备正面朝下。
设备在典型的应用程序会话期间可能经历其中任何或所有的方向。尽管创建的方向要与机载加速计保持一致,但是不会以任何方式把这些方向绑定到内置的角度值。

iOS提供了两个内置宏,帮助确定设备方向枚举值是纵向还是横向的:即UIDevice- OrientationIsPortrait()和UIDeviceOrientationIsLandscape()。能够很方便地扩展UIDevice类,提供这些测试作为内置的设备属性:

@property (nonatomic, readonly) BOOL isLandscape;
@property (nonatomic, readonly) BOOL isPortrait;

- (BOOL) isLandscape
{
    return UIDeviceOrientationIsLandscape(self.orientation);
}

- (BOOL) isPortrait
{
    return UIDeviceOrientationIsPortrait(self.orientation);
}

你的代码可以直接订阅设备重定向通知。为此,可以把beginGeneratingDeviceOrientation Notifications发送给currentDevice单例。然后添加一个观察者,捕获随后发生的UIDevice- OrientationDidChangeNotification更新。如你所期望的,可以通过调用UIDeviceOrientationDid- ChangeNotificationOrientationNotification来完成侦听。

时间: 2024-09-09 15:23:06

《iOS 6高级开发手册(第4版)》——1.5节处理基本的方向的相关文章

《iOS 6高级开发手册(第4版)》——1.4节秘诀:取回额外的设备信息

1.4 秘诀:取回额外的设备信息 iOS 6高级开发手册(第4版) sysctl()和sysctlbyname()允许获取系统信息.这些标准的UNIX函数用于询问操作系统有关硬件和OS的详细信息.看一眼Macintosh上的/usr/include/sys/sysctl.h包括文件,就能对所提供的范围类型有一个感觉.在那里,能够找到一份可以用作这些函数的参数常量的详尽列表. 这些常量使你能够检查核心信息,比如系统的CPU频率.可用的内存量等.秘诀1-2演示了这种功能.它引入了一个UIDevice

《iOS 6高级开发手册(第4版)》——2.8节秘诀:声明文档支持

2.8 秘诀:声明文档支持 iOS 6高级开发手册(第4版) 应用程序文档并不仅限于它们创建或者从Internet下载的文件.如你在前一个秘诀中所发现的,应用程序可能处理某些文件类型.它们可能打开从其他应用程序传递过来的项目.你已经从发送方的角度见过了文档共享,它使用"open in"(打开在)控制器把文件导出到其他应用程序.现在应该从接收方的角度探讨它. 应用程序在它们的Info.plist属性列表中声明它们对某些文件类型的支持.Launch Services(启动服务)系统将读取该

《iOS 6高级开发手册(第4版)》——2.5节秘诀:Quick Look预览控制器

2.5 秘诀:Quick Look预览控制器 iOS 6高级开发手册(第4版) Quick Look预览控制器类允许用户预览许多文档类型.这个控制器支持文本.图像.PDF.RTF.iWork文件.Microsoft Office文档(Office 97及更高版本,包括doc.ppt.xls等)和逗号分隔的值(comma-separated value,csv)文件.你提供一种受支持的文件类型,Quick Look控制器将为用户显示它.集成的系统提供的活动视图控制器有助于共享预览的文档,如图2-6

《iOS 6高级开发手册(第4版)》——2.9节秘诀:创建基于URL的服务

2.9 秘诀:创建基于URL的服务 iOS 6高级开发手册(第4版) Apple的内置应用程序提供了多种可以通过URL调用访问的服务.可以要求Safari打开Web页面,让Maps显示一幅地图,或者使用mailto:风格的URL开始在Mail中撰写一封信件.URL模式指出现在冒号之前的URL的第一部分,比如http或ftp. 这些服务可以工作,因为iOS知道如何将URL模式匹配到应用程序.以http:开头的URL将在Mobile Safari中打开.mailto:URL总会链接到Mail.你可能

《iOS 6高级开发手册(第4版)》——1.2节添加设备能力限制

1.2 添加设备能力限制 iOS 6高级开发手册(第4版) 应用程序的Info.plist属性列表使你能够在向iTunes提交应用程序时指定应用程序的要求.这些限制允许告诉iTunes应用程序需要哪些设备特性. 每个iOS单元都会提供一个独特的特性集.一些设备会提供照相机和GPS能力,另外一些则不会.一些设备具有机载陀螺仪.自动聚焦,以及其他强大的选项.你可以指定在设备上运行应用程序时需要哪些特性. 在Info.plist文件中包括UIRequiredDeviceCapabilities键时,i

《iOS 6高级开发手册(第4版)》——2.3节秘诀:监测Documents文件夹

2.3 秘诀:监测Documents文件夹 iOS 6高级开发手册(第4版) iOS文档并没有受困在它们的沙盒中,你可以并且应该与用户共享它们.应该允许用户直接控制他们的文档,以及访问他们可能在设备上创建的任何资料.一个简单的Info.plist设置将使iTunes能够显示用户的Documents文件夹的内容,并使那些用户能够根据需要添加和删除资料. 在将来某个时间,你可能使用一个简单的NSMetadataQuery监测器来监视Documents文件夹并报告更新.在编写本书时,元数据监视还没有扩

《iOS 6高级开发手册(第4版)》——1.14节跟踪用户

1.14 跟踪用户 iOS 6高级开发手册(第4版) 跟踪是开发者的一种不幸的现实生活.Apple不赞成使用UIDevice属性,该属性提供了绑定到设备硬件的唯一标识符.Apple利用两个标识符属性取代UIDevice属性.它使用identifierForAdvertising属性返回当前设备所独有的一个特定于设备的字符串,并使用identifierForVendor属性提供一个绑定到每位应用程序供应商的字符串.无论使用的是哪个应用程序,这都应该会返回相同的唯一字符串,它不是顾客id.不同设备上

《iOS 6高级开发手册(第4版)》——2.7节秘诀:使用文档交互控制器

2.7 秘诀:使用文档交互控制器 iOS 6高级开发手册(第4版) UIDocumentInteractionController类允许应用程序给用户展示一个选项菜单,允许他们以各种方式使用文档文件,利用这个类,用户可以利用以下特性. iOS应用程序之间的文档共享(即"在某个应用程序中打开这个文档"). 使用QuickLook进行文档预览. 活动控制器选项,比如打印.共享和社交网络. 你已经在本章前面的动作中见过后两种特性.文档交互类在这些特性顶部添加了应用程序间的共享,如图2-7所示

《iOS 6高级开发手册(第4版)》——1.10节秘诀:Core Motion基础

1.10 秘诀:Core Motion基础 iOS 6高级开发手册(第4版) Core Motion框架集中了运动数据处理.该框架是在iOS 4 SDK中引入的,用于取代你刚才阅读到的直接加速计访问.它提供了对3个关键的机载传感器的集中式监测.这些传感器由陀螺仪.磁力计和加速计组成,其中陀螺仪用于测量设备的旋转,磁力计提供了一种测量罗盘方位的方式,加速计用于检测沿着3根轴的重力变化.第四个入口点称为设备移动(device motion),它把全部3种传感器都结合进单个监测系统中. Core Mo

《iOS 6高级开发手册(第4版)》——1.7节同步获取当前的加速计角度

1.7 同步获取当前的加速计角度iOS 6高级开发手册(第4版)有时,你可能想在不用把自己设定为完全委托的情况下查询加速计.下面的方法打算在UIDevice类别内使用,允许与x/y平面(iOS设备的正面)一起同步返回当前的设备角度.为此,可输入一个新的运行循环,等待加速计事件,从那个回调中获取当前的角度,然后让运行循环返回那个角度: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAccelerati