Проблемы с размером экрана iPhone 5

Я работаю над приложением, и мне нужно поддерживать размеры экрана iPhone 5 с диагональю 4 дюйма. Сначала я разработал приложение и запустил симулятор XCode 4.6, предназначенный для iPhone 3,5 дюйма (дисплеи с сетчаткой и без сетчатки), и переключился на iPhone 5 из симулятора. К моему удивлению, я увидел 1-дюймовое пространство в нижней части экрана за пределами моих нескольких UIButtons. Мне нужно прокрутить симулятор iPhone 5, чтобы просмотреть мои UIButtons. Что я должен сделать, чтобы поддерживать все размеры экрана и сделать его одинаковым на всех устройствах? Кроме того, мое приложение поддерживает только портретный режим для всех устройств (включая все версии iPad), и я вообще не использую раскадровки.

Пожалуйста помоги.


person Hema    schedule 20.02.2013    source источник


Ответы (1)


Вы не можете сделать 3,5-дюймовый экран и 4-дюймовый экран идентичными, потому что это не так. Но вы можете сделать так, чтобы это выглядело лучше на обоих. Трудно сказать, в чем проблема, не видя кода. Но я сделаю все возможное, чтобы помочь вам.

Если это представление является частью viewController, который вы добавили как rootViewController, тогда оно должно позаботиться о своем расширении, чтобы заполнить весь экран, независимо от размера экрана. Однако, если это subView в представлении viewController, вы должны убедиться, что представление занимает весь экран. Часто люди жестко кодируют кадр представления для произвольных чисел, например так:

[view setFrame:CGRectMake(0,0,320,460)]; 

Однако это не переносится между 3,5 и 4-дюймовыми экранами. Вы хотите сделать это:

[view setFrame:self.view.bounds];
[view setFrame:self.view.window.bounds];  //sometimes i use this instead

//set autoresizing
view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

Кроме того, вы также можете использовать автоматическое изменение размера для привязки компонентов к нижней части экрана или для изменения размера вместе с высотой экрана.

См. этот пост, чтобы узнать, как: -and-fo">Как я могу растянуть и закрепить центральное представление между верхним и нижним колонтитулами фиксированной высоты с помощью Interface Builder?

person Ed Chin    schedule 20.02.2013
comment
Я сделал это: проверил опцию автомакета, так как мое приложение будет поддерживаться с iOS 6 и выше, и после этого все выглядит отлично. Одна вещь, на которую у меня нет ответа, это то, что когда я использую симулятор iPhone 4 для просмотра приложения, я вижу полосу прокрутки внизу, и мне нужно немного прокрутить вправо, чтобы открыть частично скрытую кнопку. Почему это так?. У меня есть 4 UIButtons внизу, и все они расположены на одинаковом расстоянии друг от друга и также центрированы. - person Hema; 21.02.2013
comment
возможная проблема: contentInset? если вы установите contentInset влево, это заставит внутренние представления немного сместиться вправо и принудительно прокрутить. - person Ed Chin; 21.02.2013
comment
Я не знаком с XCode 4.6. Можете ли вы рассказать мне больше о contentInset и о том, как его отключить. - person Hema; 21.02.2013
comment
[scrollView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)]; - person Ed Chin; 22.02.2013
comment
Спасибо. Нужно ли добавлять эту строку в событие viewDidLoad для каждого из моих файлов .xib (как для iPad, так и для iPhone/iPod)? - person Hema; 22.02.2013