2013-03-25 3 views
1

Я немного ушел от разработки iOS, и я нахожусь на дороге.Разработка для iPhone 4 и iPhone 5 в одном приложении

В одном из моих приложений есть графический UIImageView, а затем у меня есть кнопки, которые накладывают визуальные эффекты. Я могу получить все, кроме автозапуска.

Если я установил свой ниб на 3.5 и запустил симулятор в режиме 3.5, все будет отлично. Если я запустил его в режиме 4.0, все кнопки сдвинутся. Это относится и к обратному этому.

Я не уверен, как обойти кнопки, которые перемещаются. Есть ли способ или должен быть 2 наконечника?

+0

Используйте автосоциализацию (значок линейки в правой панели IB). Кроме того, чтобы увидеть, как он выглядит на обоих размерах, нажмите кнопку в правом нижнем углу IB, чтобы увеличить размеры до размеров на обоих размерах экрана. –

+0

Вам просто нужно правильно настроить свои ограничения. Я не могу сказать, что вам нужно изменить, не зная, что вы видите сейчас, и чего вы хотите видеть. Вы хотите, чтобы все стало немного распространяться, когда вы переходите на большой экран? – rdelmar

ответ

0

Develop в 3,5-дюймовый экран, но позволит autoLayout. Пройдите через каждый элемент в своем представлении и настройте автоматическое определение размера. - Выберите пункт - Спуститесь вниз, где белые стрелки увеличены/уменьшены в конструкторе интерфейса. Нажмите на маленькую кнопку, которая выглядит как H. - Это позволит вам настроить корректировки для каждого элемента

enter image description here

enter image description here

2

Если вы не используете IB, то вы получите размер на вид и расположение на основе этого.

Обычно я использую одно значение для значений verticalOffset (NSInteger) и базового Y, которые имеют разные значения в зависимости от элемента интерфейса.

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

if (screenBounds.size.height == 568) { // iPhone 5 
    verticalOffset = 20; 
} else { 
    verticalOffset = 0; 
} 

если в будущем компания Apple выпускает iPhone 5.5 с высотой 768 пикселей (я шуткой .. ха!)

Вам нужно будет только добавить новое значение verticalOffset и вид будет instamagically заполнения новый размер.

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

if (screenBounds.size.height == 768) { // iPhone 5.5 
    verticalOffset = 30; 
} else if (screenBounds.size.height == 568) { // iPhone 5 
    verticalOffset = 20; 
} else { 
    verticalOffset = 0; 
} 

простой способ для IB/iPhone, если вы хотите, чтобы поддерживать старые версии IOS выключить autolayout

Turn Off AutoLayout

и отключить автоматическое определение размеров для верхнего значения.

enter image description here

Компоновка вид в IB для iPhone 5 и, когда вы используете iPhone 3.5in все элементы интерфейса будут выжимать в размер 3,5 дюйма (убедитесь, что вы оставили достаточно пробелов, когда вы положите его в более высоком размере)

Смежные вопросы