使iPhone和iPad的二进制图形准备就绪

时间:2011-04-07 15:49:56

标签: iphone ipad graphics

我准备将我的第一个iPhone / iPad应用程序提交到AppStore。我的应用程序的功能和用户界面在两个平台(iPhone和iPad)上都是相同的,但我想确保iPad用户获得的视图不是像素一样且充满了文物。

我有两套图形:一套用于iPhone,另一套用于iPad。如何在一个单独的二进制文件中使用这些图形,以便在每种类型的设备上使用适当的图形?

详细说明如何在这里做得很好!

谢谢!


编辑1

请记住,我不只是谈论图标,还有图形 WITHIN 应用程序和 启动画面< / EM> 即可。屏幕比率在两者之间是不同的,因此它不仅仅是缩放的问题。 (如果我的想法错了,请指出:)

3 个答案:

答案 0 :(得分:1)

好吧,我猜你想做点什么:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    self.image1 = [UIImage imageNamed:@"img1-ipad.png"];
} else {
    self.image1 = [UIImage imageNamed:@"img1-iphone.png"];
}

如果您要将代码分配给代码,那就是。

对于iPad的启动图像,将文件 Default-Landscape~ipad.png Default-Portrait~ipad.png 添加到项目中。

答案 1 :(得分:1)

无论好坏,普遍应用程序的正常系统是您提供MainWindow NIB的两个独立版本; iPad和iPhone具有不同的宽高比和非常不同的像素密度,因此Apple要求您考虑的不仅仅是像素分辨率。您会注意到在Xcode 4中,您的项目中有两组独立的“部署信息”,可以在那里指定单独的“主界面”文件。这也是您可以指定不同加载屏幕和图标的位置(通过拖放操作最简单;让Xcode确保文件名正确)。

如果您的应用程序只是相同的界面,但经过调整,则提供与其所有者指定相同类别的不同NIB是很正常的。所以,例如假设您有一个类MainMenuViewController,充满了常见的IBActions和IBOutlets,那么您可以创建MainMenuViewController-iPhone.xib和MainMenuViewController-iPad.xib。这两个人都会提名他们的类作为MainMenuViewController并包含适当的控制连接。在你的iPhone MainWindow NIB中,你设置从MainMenuViewController-iPhone加载该视图控制器,在iPad MainWindow NIB中你设置它从MainMenuViewController加载 - iPad兼容。因为两者都会导致同一个类的实例被实例化,并且设置为使类可以到达相关控件,所以只需编写一次代码的模型部分。

考虑到这一点,您所要做的就是在iPad NIB中使用iPad图形,在iPhone NIB中使用iPhone图形(自动处理@ 2x)。

如果您需要进行任何运行时检查,您应该查看用户界面惯用法。例如:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    // do something with the iPhone resources
}
else
{
    // do something with the iPad resources
}

有关UI_USER_INTERFACE_IDIOM的文档,请参阅here。假设您使用最新的SDK进行构建,即使在早于iPad推出的iOS版本上,也始终可以安全地调用它。

答案 2 :(得分:0)

这是你的答案:iPad Icon names?

编辑1:

你可以将'~iphone.png'或'~ipo.png'放在图像名称的末尾,以便为该设备加载它。

更多信息: http://devimages.apple.com/iphone/resources/introductiontouniversalapps.pdf