2015-02-07 3 views
0

Что я пытаюсь достичь адаптивный вид для iPhone'ов, основанные на экране в макетах 4.7" .iOS адаптивный вид; адаптивные ограничения?

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

I не желают использовать свободную форму, поскольку она кажется мне чуждой, а мои намеренные цели - не iPads.

Кроме того, текущий проект, в котором я включен, не позволит мне переключаться на размеры произвольного размера для некоторых Причина.

iPhone 4 based on 4.7" layout without constraints iPhone 4 based on 4.7" with constraints top/bottom iPhone 6 based on 4.7" with constraints

Первого iphone 4 без ограничений, основанных на 4.7" макет секунду iphone 4 с ограничениями на основе 4.7" макета третье то, что отображается расположение iphone 6, как.

Я хочу сохранить одно и то же общее расстояние, но уменьшаю все, чтобы в идеале соответствовать меньшему размеру экрана. (дистанционно, не кнопка/размер текста и т. д.)

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

Однако, как я могу программно достичь этого

if (iphone screen is 4.7") { 
    bottom constraint is 95px.height; 
} else 
if (iphone screen is 4.0") {  
    bottom constraint is 50px.height; 
} else 
if (iphone screen is 3.5") { 
    bottom constraint is 10px.height; 
} 

Это, как я планирую сделать мое приложение адаптивным, но мне нужно ограничения, чтобы быть адаптивными тоже. Если я подхожу к этому неправильно, прошу указать мне в правильном направлении.

ответ

1

Существует несколько способов, которыми вы могли бы приблизиться к этому. Один из способов - использовать как множитель, так и константу ограничения, чтобы дать вам правильный интервал для этих размеров экрана. Если вы решите для этих двух уравнений,

480x + у = 470 (480 - ваше хотели Дно ограничение 10) и

667x + у = 572 (667 - ваше хотели Дно ограничение 95)

вы получаете значения 0.5455 для x и 208.2 для y. Если вы подключите их к другому уравнению (568x + y = 518), это тоже будет очень близко. Таким образом, для этого нижнего ограничения, вы хотите иметь

нижняя кнопка = SuperView дно * 0,5455 + 208,2

Вы можете сделать это в IB, добавив нижнее ограничение на кнопку нижней (или меток) и редактирование его измените множитель и постоянные значения. Вы можете сделать то же самое с вашим верхним видом, чтобы сделать его пропорциональным размеру экрана, но будьте осторожны, что вам действительно нужно сделать ограничение в нижней части супер-представления, потому что значение superiew.top равно 0, поэтому использование множителя будет тебе нехорошо. Для пространственного просмотра всех точек зрения между ними наилучшим способом является использование представлений spacer (если вы равномерно просматриваете «пространственные представления» на SO, вы найдете ответы на них, которые объясняют это).

Другой способ сделать это может заключаться в использовании табличного представления вместо отдельных меток и кнопок. Преимущество этого подхода заключается в том, что представления (ячейки в этом случае) будут автоматически распределены равномерно (в зависимости от высоты строки).Вы все равно можете ограничить вид таблиц сверху и снизу, как описано выше, или просто центрировать его по вертикали и сделать его высотой пропорциональной высоте супервизора. Я думаю, что это, вероятно, лучший и, конечно, более легкий подход. Если вы не используете прокрутку таблицы и не имеете разделителей ячеек, она будет выглядеть так же, как и другой подход.

+0

Спасибо за вашу помощь, большое спасибо! – user2415313

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