我刚刚开始开发一个通用iOS应用程序,我需要为其设置背景图像。
而不是使用3~4个不同大小的图像iPhone,iPhone-视网膜,iPhone5,iPhone5-视网膜和iPad,iPad-视网膜,我只想采取一个最高分辨率的图像(比方说1024x780),我想用它来适应上述所有的设备。怎么做?
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sfond-appz.png"]];它没有占用较小设备的确切屏幕尺寸(&T)。它正在缩小。
敬请指教!
发布于 2013-07-10 20:17:36
如果苹果建议每种显示器使用不同的图像,那就有一个特定的原因,那就是内存。
随着显示器尺寸的增加,设备上可用的内存也会增加,这是因为更大的图像需要更多的内存。即使您想在运行时调整它们的大小(而不是拉伸),第一次打开它时也会占用该内存,直到您释放它为止。占用的内存与文件大小无关。
如果您仍想尝试,请查看此库,它将帮助您在运行时NYXImagesKit中调整(而不是拉伸)图像大小
发布于 2013-07-10 20:22:22
我在App Store的一个应用程序中也做了同样的事情。在主菜单视图上,我使用UIImaveView作为背景,并在Interface Builder中将模式设置为Aspect Fit。我使用struts和springs来保持它与边缘对齐。
对于通用应用程序,您将在iPhone和iPad故事板(或.xib文件)上创建此UIImageView,并使用相同的图像文件。
然而,我仍然有一个2x版本的视网膜显示器。所以,我只用了两张图片来覆盖所有的设备、方向和分辨率。
如果您创建一个适合每个设备的背景图像,它将消耗较少的内存,但您会明显增加捆绑包的大小。在我的例子中,目标是保持包的大小较小(用于蜂窝交付的小于50MB),并且我有多余的内存。
https://stackoverflow.com/questions/17570162
复制相似问题