有的时候应用需要能够在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 设备 }
更多iOS6开放知识请参考《iOS6开放指南》本书其他内容。