0

我将视图背景设置如下:

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.
4

3 回答 3

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"]];
}
于 2013-09-12T11:23:05.307 回答
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"];
        }
}
于 2013-09-12T12:08:34.867 回答
0

您需要为 iPhone 4 和 iPhone 5 使用两个不同的图像。因为这两种设备的分辨率不同。你需要像这样检查。

if ([UIScreen mainScreen].bounds.size.height == 568)
    {
        // ------- iPhone 5
    }
    else
    {
        // ---------- iPhone 4
    }
于 2013-09-12T11:22:52.530 回答