假设我的图像是iPhone 4s屏幕显示器高度的一半,当这个图像加载到iPhone 5时,显然这个尺寸不再是iPhone的一半,因为iPhone 5的高度略大那么iPhone 4s。
我的问题是,就像使用图像2x和3x一样,有没有办法将图像添加到针对特定iPhone的应用程序?因此,不会使用该应用程序下载未定位的其他图像。
或者我需要在应用程序中添加各种大小的图像,然后在代码中,如果iphone4加载此图像,如果iphone5加载这个?我不想这样做的唯一原因是因为我存储的图像数量是目标iPhone 4,5,6的3倍,而不是iphone6 plus或iPad。
我希望得到像image@2x~iphone4.png或image@2x~iphone5.png这样的东西,但这不起作用。
答案 0 :(得分:2)
看看图片资产,它解决了你所说的确切问题。 https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html
当您拨打[UIImage imageNamed:@"imageNameHere"]
时,它可以提供1x,2x和3x图像作为单个名称引用。
答案 1 :(得分:2)
David Cao's answer对于捆绑的图片资源是正确的,但您已经提到过,您并不真的想在应用中包含这么多资产。
您可能希望查看Xcode 7 / iOS 9的App Thinning功能以及按需资源,这样您就可以将所需的图像加载到Xcode中,但App Store只会下载所需的资源对于正在使用的设备。
如果您仍然需要支持iOS 8,则需要将图像存储在远程服务器上并在需要时加载它们。