background image

构建自适应

iPhone 和 iPad 工程

    有的时候应用需要能够在 iPhone 和 iPad 上运行,当然我们可以选择做两个完全不同的工
程,然后共用一些类,但是我们也可以只创建一个工程,然后编译生成一个产品,这个产
品能够自适应

iPhone 和 iPad 设备,然后在 App Stroe 发布的时候,它会有两套不同的截图

展示给用户。

App Store 上的 Evernote 应用,它有两套截图 iPhone 和 iPad,这说明 Evernote

就是自适应

iPhone 和 iPad 设备的。

    我们来做一个名为 UniversalSample 的自适应 iPhone 和 iPad 设备的工程。

    首先,在创建时候选择 Devices 为“Universal”,我们以前一直选择的是 iPhone,如果开发
iPad 专用的应用需要勾选 iPad。

    创建好之后生成有两套故事板,如果用 nib 实现也会有两套文件。

        选 择 TARGETS , iPhone 的 “ Main  Storyboard” ( 主 故 事 板 ) 设 置 的 是
MainStoryboard_iPhone,主故事板在应用启动时候被首先加载,它设定应用的根视图和启
动的第一个画面。

iPad 的(主故事板),设置的是 MainStoryboard_iPad。

    运行时需要选择运行设备,有 iPad 6.0 Simulator、iPhone 6.0 Simulator 和 iOS Device(真
机运行)几个选项,选择

iPhone 6.0 Simulator,这说明应用要在 iPhone 6.0 模拟器上运行。

    在编程时可以通过下面语句判断设备,常量 UIUserInterfaceIdiomPhone 用于判断是否为
iPhone 设备,UIUserInterfaceIdiomPad 用于判断是否为 iPad 设备。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

// iPhone 设备

} else {

// iPad 设备

}