0

我为 iPhone 制作了一个应用程序,现在我想让它通用,以便能够在 iPad 上全屏运行。

该应用程序大小为 40MB,并显示捆绑包中存储的许多图像。它们的尺寸适合 iPhone 屏幕。管理此问题的最佳方法是什么?

如果我为 iPad 添加更大的图像,应用程序会非常大。我可以为 iPad 内容制作一个源文件夹,为 iPhone 内容制作一个源文件夹,然后在客户购买应用程序时下载正确的一个吗?我对这一切有点困惑,我的搜索并没有导致任何结果。

我还读到我可以为 iPhone 和 iPad 故事板场景使用相同的类 (.h/.m)。那么对于 iPad 不同的代码呢,如何管理呢?那可能是什么样的代码?我对此有点困惑,一些指导会很棒。

我使用带有故事板的 Xcode 4,该应用程序非常基础,只有一些带有按钮、文本字段、图像和标签以及一些操作表的 UITableView 和 UIView,仅此而已......还有一个 .plist 来管理数据。

到目前为止,我刚刚将目标更改为“通用”并为 iPad 添加了一个故事板文件,并在开始做某事之前等待一些基本指南。希望你能理解我的问题。谢谢。:-)

4

1 回答 1

3

如果我为 iPad 添加更大的图像,应用程序会很大

它会,但它是易于管理的,您将在捆绑包中包含两个设备的所有图像,只需尝试尽可能地压缩它们而不会扭曲它们。

注意:减少应用程序消耗的存储量的一个非常好的策略是尽可能平铺背景图像……尤其是在 iPad Retina 上。

那么对于 iPad 不同的代码呢,如何管理呢?那可能是什么样的代码?我对此有点困惑,一些指导会很棒。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    //do something for iPad
}else{
    //do something for iPhone/iPod Touch
}

这就是您可以分离只应在特定设备类型上运行的代码的方法。您不必在所有事情上都使用它,或多或少只是与对象尺寸或只能在特定设备上使用的对象有关的任何事情(例如:)UIPopOverController

两个用户界面习惯用法是:UIUserInterfaceIdiomPad &UIUserInterfaceIdiomPhone

此外,这是您应该使用的图像命名方案:

  • ImageName.png - 适用于 iPhone/iPod
  • ImageName@2x.png - 适用于 iPhone/iPod 视网膜
  • ImageName~ipad.png -- 适用于 iPad
  • ImageName@2x~ipad.png -- 适用于 iPad 视网膜

如果所有这些图像都正确命名,这将大大简化您在应用程序中使用图像的方式。

UIImage *myImage = [UIImage imageNamed:@"ImageName"];

仅使用“ImageName”iOS 将根据设备类型和分辨率自动使用正确的图像。

于 2012-09-05T00:41:42.970 回答