在 ios 7 和 ios 7+ 中处理设备特定图像的最佳方法

Posted

技术标签:

【中文标题】在 ios 7 和 ios 7+ 中处理设备特定图像的最佳方法【英文标题】:Best way to handle device specific images in ios 7 and ios 7+ 【发布时间】:2014-12-09 09:12:58 【问题描述】:

ios 4 和 4+ 中运行的应用现在应该为每个图像资源包含两个单独的文件。一个文件提供给定图像的标准分辨率版本,第二个文件提供同一图像的高分辨率版本。每对图像文件的命名约定如下:

Standard:        <ImageName><device_modifier>.<filename_extension>

High Resolution: <ImageName>@2x<device_modifier>.<filename_extension>

前:

name~iphone.png    
name@2x~iphone.png

name~ipad.png   
name@2x~ipad.png

这是引入和定义的默认命名约定。 its documentation!

这个故事/问题的意图:

我只是想知道,在项目中处理设备特定图像的最佳方法是什么。

以更少的努力,而我们有更多的设备(3.5 英寸、4 英寸、4.7 英寸、5.5 英寸)要在项目中考虑。

【问题讨论】:

【参考方案1】:

使用资产目录。项目中的 Image.xcassets。 https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html

【讨论】:

【参考方案2】:

查看 iOS 界面指南。显示的表格表明,只有 5.5 英寸的屏幕需要更改资产/名称:

Guide here

> Asset:
> 
> iPhone 6 Plus (@3x) 
>
> iPhone 6 and iPhone 5 (@2x)
>
>iPhone 4s (@2x) 
>
>iPad and iPad mini (Retina iPad and iPad Mini) (@2x) 
>
>iPad 2 and iPad mini (@1x)

【讨论】:

以上是关于在 ios 7 和 ios 7+ 中处理设备特定图像的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 / Xcode 5:以编程方式访问设备启动图像

NSBundle UIImage nil iOS 7 特定

如何在 iOS 7 和 iOS 8 中锁定设备方向

使用IB设计现有应用程序对设备没有影响(iOS 7.1 / XCode 5.1)

在 iOS 7 原生登录弹出窗口中处理取消的选择

存储映射IO