在我的 FirstViewController
中,如果设备是 iPhone4 或 iPhone5,我已经编写了切换背景的代码:
文件名:
bg-for5-568@2x.png
bg-for4@2x.png
bg-for4.png
- (void)viewDidLoad
{
[super viewDidLoad];
UIImage *backgroundImage = [[UIImage alloc] init];
if([[UIScreen mainScreen]bounds].size.height == 568)
{
backgroundImage = [UIImage imageNamed:@"bg-for5-568h"];
}
else
{
backgroundImage = [UIImage imageNamed:@"bg-for4"];
}
self.view.backgroundColor = [[[UIColor alloc] initWithPatternImage:backgroundImage] autorelease];
[backgroundImage release];
}
当我在我的模拟器上启动该应用程序时,iphone5 的背景显示双倍大小,超出 View 范围。
/* 已解决,谢谢 */
最佳答案
我不确定这是否是解决此问题的方法,因为我缺少一些信息,但是:
首先:从您的imageNamed:
方法中删除.png
。从 iOS4 开始,你不应该再这样做了。接下来的事情是:你的形象的名字是什么?请注意,iPhone5 具有视网膜显示屏,您的图像应命名为 bg-for5-568h@2x.png
,但在源代码中称为 bg-for5-568h
。
除此之外:在几乎所有您的图像不是照片的情况下,您所做的都是一个坏主意。即使是照片,也只需为 iPhone 4 和 4S 使用更大的图像。它并没有那么大,所以内存占用在这里不是问题!查看 UIImageView
的 contentMode
属性。您可以使用它来调整较大图像的位置。如果图像不是全屏,您可能还需要检查 UIImageView
的 clipSubviews
属性以裁剪图像。
相信我,在我的公司里,我们有很多钩子(Hook),比如 ~ipad、~iphone、~2x 甚至可拉伸(stretch)图像。所有这些 Hook 在日期之前都运行良好,苹果宣布了类似的东西或只是一种新设备。所以我决定不再做这些钩子(Hook)了。一开始它们似乎很有帮助,但当市场上有新东西时,你遇到的麻烦是不值得的!
关于iphone - 切换背景图片 iphone 5 - iphone 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972264/