Если вы не используете 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
и отключить автоматическое определение размеров для верхнего значения.
Компоновка вид в IB для iPhone 5 и, когда вы используете iPhone 3.5in все элементы интерфейса будут выжимать в размер 3,5 дюйма (убедитесь, что вы оставили достаточно пробелов, когда вы положите его в более высоком размере)
Используйте автосоциализацию (значок линейки в правой панели IB). Кроме того, чтобы увидеть, как он выглядит на обоих размерах, нажмите кнопку в правом нижнем углу IB, чтобы увеличить размеры до размеров на обоих размерах экрана. –
Вам просто нужно правильно настроить свои ограничения. Я не могу сказать, что вам нужно изменить, не зная, что вы видите сейчас, и чего вы хотите видеть. Вы хотите, чтобы все стало немного распространяться, когда вы переходите на большой экран? – rdelmar