我将视图背景设置如下:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:
@"backgr.png"]];
当我在 iphone 4(Retina 3.5英寸)中运行它时工作正常。但是当我在 iphone 5(Retina 4英寸)图像中运行时没有正确设置或显示。图像看起来像4倍放大/ 爆炸了。
编辑:
I have two different images for iphone 4(640x960) and 5(640x1136).
What is the problem here? Is it scaling problem or another problem?
Please guide me on this.
答案 0 :(得分:1)
两个显示器的分辨率都不同,因此您需要放置条件,并相应地为iPhone 5(4英寸视网膜)显示器设置更高分辨率的新图像。
和你可以像
那样的条件if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
// This is iPhone 5 screen
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgr_iPhone5.png"]];
} else {
// This is iPhone 4 screen
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgr.png"]];
}
答案 1 :(得分:1)
这可以很方便:
#define IS_PHONEPOD5() ([UIScreen mainScreen].bounds.size.height == 568.0f &&
[UIScreen mainScreen].scale == 2.f &&
UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
和
- (void)viewDidLoad
{
[super viewDidLoad];
if(IS_PHONEPOD5())
{
self.imageView.image = [UIImage imageNamed:@"image-568h@2x"];
}
else
{
self.imageView.image = [UIImage imageNamed:@"image"];
}
}
答案 2 :(得分:0)
您需要为iPhone 4和iPhone 5使用两个不同的图像。因为两个设备具有不同的分辨率。你需要这样检查。
if ([UIScreen mainScreen].bounds.size.height == 568)
{
// ------- iPhone 5
}
else
{
// ---------- iPhone 4
}