0

我刚开始开发一个通用 iOS 应用程序,我需要为其设置背景图像。

我不想为 iPhone、iPhone-retina、iPhone5、iPhone5-retina 和 iPad、iPad-retina 使用 3~4 个不同尺寸的图像,我只想拍摄一张最高分辨率的图像(比如 1024*780),我想用它来适合所有上述设备。如何???

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sfond-appz.png"]];

并且它不会占用较小设备的确切屏幕尺寸。它正在缩小。

请指教!!!

4

2 回答 2

0

如果 Apple 建议为每种显示器使用不同的图像,那是有特定原因的,那就是内存。
随着显示尺寸的增加,它也会增加设备上可用的内存,因为更大的图像需要更多的内存。即使您想在运行时调整(而不是拉伸)它们的大小,第一次打开它也会占用该内存,直到您释放它。它占用的内存不必处理文件大小。
如果您仍然想尝试查看这个库,它将帮助您在运行时调整(而不是拉伸)图像的大小NYXImagesKit

于 2013-07-10T12:17:36.040 回答
0

我在 App Store 中的一个应用程序中做同样的事情。在主菜单视图中,我使用 UIImaveView 作为背景,并在 Interface Builder 中将模式设置为 Aspect Fit。我使用支柱和弹簧使其与边缘对齐。

对于通用应用程序,您将在 iPhone 和 iPad 故事板(或 .xib 文件)上创建此 UIImageView 并使用相同的图像文件。

但是,我仍然有 2x 版本的视网膜显示器。因此,我只使用两张图片来涵盖所有设备、方向和分辨率。

如果您创建适合每个设备的背景图像,它将消耗更少的内存,但您显然会增加捆绑包的大小。在我的情况下,目标是保持捆绑包的大小(蜂窝传输小于 50 MB),并且我有可用的内存。

于 2013-07-10T12:22:21.923 回答