Почему мое изображение не отображается при запуске приложения в iphone (Retina 4 дюйма)
Я устанавливаю фоновый вид, как показано ниже:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:
@"backgr.png"]];
Он работает нормально, когда я запускаю его в iphone 4(Retina 3,5 дюйма). Но когда я запускаю его в iphone 5(Retina 4-inch) изображение не устанавливается или отображается правильно. Изображение выглядит как 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.
3 ответа
Разрешение для обоих дисплеев различно, поэтому вам нужно поставить условие и соответственно установить новое изображение с более высоким разрешением для дисплея 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"]];
}
Вот что может пригодиться:
#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"];
}
}
Вам нужно использовать два разных изображения для iPhone 4 и iPhone 5. Потому что оба устройства имеют разное разрешение. Вы должны проверить, как это.
if ([UIScreen mainScreen].bounds.size.height == 568)
{
// ------- iPhone 5
}
else
{
// ---------- iPhone 4
}