如何使用ios 8.x兼容性在Xcode 6中为 MyimageView 设置相应的 MYimage.png 。
MyimageView setImage:[UIImage imageNamed:@"MYimage.png"];
在参考资料中,我有以下分辨率的图像:
MYimage.png--320*480
MYimage@2x.png--640*960
MYimage-568h@2x.png--640*1136
MYimage-375h@2x.png--750*1334
MYimage-736h@3x.png--1242*2208
对于iPhone 4s,它会显示:MYimage@2x.png [Right]
对于iPhone 5s,它会显示:MYimage@2x.png [wrong]
对于iPhone 6,它会显示:MYimage@2x.png [wrong]
对于iPhone 6 +,它会显示:MYimage@2x.png [wrong]
但在重命名图像后如下所述:
MYimage.png--320*480
MYimage@2x.png--640*960
MYimage-568h@2x.png--640*1136
MYimage-375h@2x.png--750*1334
MYimage@3x.png--1242*2208
对于iPhone 4s,它会显示:MYimage@2x.png [Right]
对于iPhone 5s,它会显示:MYimage@2x.png [wrong]
对于iPhone 6,它会显示:MYimage@2x.png [wrong]
对于iPhone 6 +,它会显示:MYimage@3x.png [Right]
那么,要实施的格式是什么?
注意:也在Links之后用Google搜索,依此类推..
答案 0 :(得分:9)
iOS仅支持启动图片的尺寸表示法,例如this页面以Default-568h@2x.png
等格式描述3.5“,4”和iPad的使用情况。
你实际上只能支持的是@ 2x和@ 3x(参见here),这解释了为什么在你看到它的每个设备上它只能获取@ 2x和@ 3x pngs。
最后,MYimage@Xx.png--w*h
也不是有效的大小表示;当您引用名为MYimage.png
的图像时,系统将不会自动读取这些文件;最多可以MYimage@2x.png
和MYimage@3x.png
。
在下面回答您的问题:
iPhone 6和iPhone 5都以相同的像素密度渲染。 UI元素应在UI中以两个设备上相同的磅值正确定位。
例如:
iPhone 5 iPhone 6
| | | |
| | | |
| | | |
|[bttn]| | |
|______| | [bttn] |
|________|
如果您正在UIImageView中显示照片,您可以创建最大尺寸,然后让它缩小到iPhone 5(使用UIViewContentModeScaleAspectFill
)或保持原样(使用{{ 1}})。
最后,你真的不想为每个设备管理特定维度 - 如果你为每个元素包含2个高分辨率资产,那就是很多存储空间。为每个设备添加一个是不必要的,Apple从来没有打算这样做。
答案 1 :(得分:9)
您不需要指定图片的屏幕尺寸,而只需指定它的密度。
有3个密度组:
对于每个组,您应该添加一个以模式"file_name@density.ext"
命名的图像,其中密度可以省略1x。
示例:
为了更好地使用和组织图像资源,您应该考虑使用Asset Catalogs。它们还可以帮助您了解您需要的图像尺寸,具体取决于您支持的设备,并且您无需关心每个文件名。