关于 xcode:针对特定 iPhone 型号的图像

Images to Target Specific iPhone Models

假设我有一张图片,它是 iPhone 4s 屏幕显示高度的一半,当这张图片明显加载到 iPhone 5 时,这个尺寸不再是 iPhone 尺寸的一半,因为 iPhone 5 的高度稍大然后是 iPhone 4s。

我的问题是,就像使用 2x 和 3x 图像一样,有没有一种方法可以将图像添加到针对特定 iPhone 的应用程序?以便应用程序不会下载未定位的其他图像。

或者我是否需要将各种尺寸的图像添加到应用程序中,然后在代码中,说如果 iphone4 加载这个图像,如果 iphone5 加载这个?我不想这样做的唯一原因是因为我存储的图像数量(目标 iPhone 4、5、6)是 iphone6 plus 或 iPad 的 3 倍。

我希望像 image@2x~iphone4.png 或 image@2x~iphone5.png 这样的东西,但这不起作用。


David Cao\\'s answer 对于捆绑的图像资产是正确的,但您提到您并不真的希望在应用程序中包含这么多资产。

您可能想查看 Xcode 7 / iOS 9 的 App Thinning 功能以及按需资源,这将允许您将所需的图像加载到 Xcode 中,但 App Store 只会下载设备所需的资源正在使用。

如果您仍然需要支持 iOS 8,您需要将图像存储在远程服务器上,并在需要时加载它们。


看看图像资产,它解决了您所说的确切问题。
https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html

它的作用是允许您在调用 [UIImage imageNamed:@"imageNameHere"] 时提供 1x、2x 和 3x 图像,这些图像可以作为单个名称引用。