Как управлять фоновыми изображениями для iPhone 5?


Некоторые из моих приложений используют пользовательские изображения в качестве фона. Как правильно проверить размер экрана, чтобы разместить правильное изображение?

Должно ли это быть что-то вроде этого в viewDidLoad:

if ([UIScreen mainScreen] == 2.0)
{
     UIImage * backgroundImage = [UIImage imageNamed:@"bgimage-568h@2x.png"];
     backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]];
}
else
{
    UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"];
    backgroundImageView = [[UIImageView alloc] iniWithImage:backgroundImage]];
}

Любые советы / советы очень ценятся!

Спасибо!

2 12

2 ответа:

Следующий код проверяет размер / границы экрана. Если экран составляет 586 точек (помните, что экран измеряется в точках из-за сетчатки), то мы знаем, что это новый 4-дюймовый дисплей Retina.

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
   UIImage * backgroundImage = [UIImage imageNamed:@"bgimage-568h@2x.png"];
   backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
}
else
{
   UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"];
   backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
}

См. также iOS 6 apps-how to deal with iPhone 5 screen size?

Ответ Брайана выше сработал для меня, за исключением того, что мне пришлось использовать

[self.bgImageView setImage:backgroundImage];

Вместо

backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];

Правильное изображение отображается только в том случае, если я использую первое.