在我的 iPhone 应用程序上,我只想设置一个特定的背景图像,这取决于它是否是 iPhone 5。
所以,我尝试了两种方法:A)使用
self.view.backgroundColor = [UIColor colorWithPatternImage:backGroundimage];
B)创建一个 UIImageView 并在那里设置图像。代码:
UIImageView *backgroundImageView = [[UIImageView alloc]initWithFrame:screenBounds];
[backgroundImageView setImage:[UIImage imageNamed:backGroundImage]];
[self.view addSubview:backgroundImageView];
但我对他们两个都有问题:
步骤 A 的问题:当我通过这种方式设置图像时,我必须处理不同屏幕尺寸的图像缩放问题。我使用以下代码进行缩放:
UIGraphicsBeginImageContext(screenBounds.size);
[[UIImage imageNamed:backGroundImage] drawInRect:screenBounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
步骤 A 的另一个问题是图像看起来很模糊。它没有相同的锐度。
步骤 B 的问题:有了这个,图像看起来非常清晰和锐利 - 就像它应该看起来的那样。
但是当我使用以下代码切换到另一个视图时,奇怪的是 UIImageView backgroundImageView 仍然出现在第二个视图上。我用来切换视图的代码是:
[self presentViewController:secondViewController animated:YES completion:nil];
我什至尝试过[backgroundImageView removeFromSuperview]
,但这也没有解决任何问题。
那么我做错了什么?以及如何将图片设置为取决于 iphone 大小的背景?