有的时候应用需要能够在iPhone和iPad上运行,当然我们可以选择做两个完全不同的工程,然后共用一些类,但是我们也可以只创建一个工程,然后编译生成一个产品,这个产品能够自适应iPhone和iPad设备,然后在AppStroe发布的时候,它会有两套不同的截图展示给用户。AppStore上的Evernote应用,它有两套截图iPhone和iPad,这说明Evernote就是自适应iPhone和iPad设备的。

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

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

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

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

运行时需要选择运行设备,有iPad6.0Simulator、iPhone6.0Simulator和iOSDevice(真机运行)几个选项,选择iPhone6.0Simulator,这说明应用要在iPhone6.0模拟器上运行。

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

if([[UIDevicecurrentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone){//iPhone设备}else{//iPad设备}

更多iOS6开放知识请参考《iOS6开放指南》本书其他内容。