- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Xcode 6 中开发一个 ObjC iPhone 应用程序,目标是 iOS 7 作为最低版本。
我的应用程序中的主要 UIViewController
实例有全屏背景图片。该应用程序使用四个视觉主题,每个背景现在都有三种尺寸。为了支持4"、4.7"和5.5"屏幕,图片宽度分别为640、750和1242像素。在我的项目中,我根据[[UIScreen mainScreen] nativeBounds]的结果选择特定图片。
获取屏幕分辨率对应的背景图片,例如background_gray
(640像素)、background_gray_750
、background_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 的图像,如下所示:
还有一张用于 iPhone 6(Retina 4.7"2x)图像,如下所示:
这样我只需要检查与 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/
我是一名优秀的程序员,十分优秀!