gpt4 book ai didi

ios - 如何在 Xcode 中指定全屏背景图像,以便不会将冗余图像安装到设备?

转载 作者:行者123 更新时间:2023-11-28 18:10:16 25 4
gpt4 key购买 nike

我正在 Xcode 6 中开发一个 ObjC iPhone 应用程序,目标是 iOS 7 作为最低版本。

我的应用程序中的主要 UIViewController 实例有全屏背景图片。该应用程序使用四个视觉主题,每个背景现在都有三种尺寸。为了支持4"、4.7"和5.5"屏幕,图片宽度分别为640、750和1242像素。在我的项目中,我根据[[UIScreen mainScreen] nativeBounds]的结果选择特定图片。 获取屏幕分辨率对应的背景图片,例如background_gray(640像素)、background_gray_750background_gray_1242 .

有没有一种方法可以将我所有的背景图像安排在一个 Xcode xcassets 包中,这样每个设备将只获得它要使用的背景图像?换句话说,像素宽度为 750 和 1242 像素的背景永远不会在 3.5"或 4"屏幕上使用。

640 像素和 750 像素宽度的图像都是 2x,因此这不是使用相同名称简单地指定一个图像的 1x、2x 和 3x 版本的问题。

最佳答案

我最近也遇到了这种情况,并且在思考为什么 Apple 没有在特定于设备的图像集中包含 Retina 4.7 2x 选项。

我没有像您描述的那样为每个尺寸变化创建一个图像集,而是为每个图像使用了两个图像集:一个包含 1x、2x、Retina 4"、2x 和 3x 的图像,如下所示:

enter image description here

还有一张用于 iPhone 6(Retina 4.7"2x)图像,如下所示:

enter image description here

这样我只需要检查与 iPhone 6 匹配的屏幕宽度,如下所示:

CGFloat screenWidth = CGRectGetWidth([UIScreen mainScreen].nativeBounds);
NSString *imageName = (screenWidth == 750.0) ? @"Image~750" : @"Image";
UIImage *image = [UIImage imageNamed:imageName];

上述三元运算符中的错误条件由操作系统从上面的第一个图像集中选择正确的图像来显示。

关于ios - 如何在 Xcode 中指定全屏背景图像,以便不会将冗余图像安装到设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com