为iphone 3gs / 4 / 4s / 5/6 / 6plus应用选择像素完美背景图像

时间:2014-09-23 09:15:14

标签: ios iphone adaptive-ui

我的应用程序中有一个覆盖整个屏幕的背景图像,两侧有一点额外的视差效果。由于我支持旧手机,我需要具有检查大小范围的逻辑来选择"短"或者"长"图像(4 - > 5)。现在有了新手机,我需要更多的逻辑。

我已经制定了一种有效的方法,但它并不完全适应" ...我想知道我是否遗漏了可能会咬我的东西。 (除此之外,当有新的决议出来时,我显然必须重新审视这一点......)

App目前不支持横向模式。我有一个"常规"使用@ 2x作为默认设置来满足3gs / 4 / 4s的图像,并且在我的rootcontroller的ViewDiwLoad中运行此代码,我已经测试了它并且它可以工作:

    if (screenBounds.size.height == 568) {
    backg.image = [UIImage imageNamed:@"background660x1156.png"];
}else if (screenBounds.size.height == 667) {
    backg.image = [UIImage imageNamed:@"background770x1334.png"];
}else if (screenBounds.size.height > 667) {
    backg.image = [UIImage imageNamed:@"background1262x2228.png"];
}

我应该以不同的方式做这件事吗?

1 个答案:

答案 0 :(得分:1)

我建议你看看size classes。特别是,请使用来自WWDC 2014的UIKit(会话216)视频观看构建自适应应用程序。

您可以使用图片资源目录来定位各种尺寸,而不是对您的尺寸进行硬编码。要开始在资产目录和右侧的检查器中打开图像,请为“宽度/高度”设置一个值。您可以为任意/紧凑/常规尺寸指定特定图像。

size classes in image assets

例如,您可以为background660x1156.pngwidth: Any设置height: Any & Compact。然后,这将适用于纵向的任何iPhone目标。

如果您必须定位较旧的iOS版本,那么这可能对您没有帮助,但这是Apple推荐的解决方案。请阅读asset catalog help以获取更多建议。