Xcode Interface Builder. Чем Отличаются Эти Настройки Маски Авторазмера?
Теперь я вполне комфортно использую маски авторазмера В IB, но есть два параметра авторазмера, которые мне не ясно, как они должны отличаться:
Некоторый контекст. Подкласс UIView, который использует эти настройки являются дочерним подвидом. Установка 1 дает мне желаемое поведение-subview расширяется/сжимается с родительским представлением - в то время как установка 2 немного отличается неочевидным образом.
Какова планируемая разница в компоновке между этими двумя настройками?
Спасибо,
Дуг
2 ответа:
Настройка 1: Вид будет изменяться по вертикали таким образом, чтобы сохранялось как расстояние от верхней части супервизора, так и расстояние от нижней части супервизора. В принципе, вид будет расти и сжиматься в тандеме с супервизором; если супервизор станет выше на 30 пикселей, то и этот вид тоже.
Настройка 2: Вид будет изменяться по вертикали таким образом, чтобы расстояние от вершины супервизора сохранялось, а пропорциональная высота вида была равна консервированный. В принципе, вид будет расти пропорционально с супервизором; если супервизор станет выше на 10%, Этот вид также станет выше на 10%.
Обратите внимание, как они отличаются на практике. Предположим, что superview имеет высоту 100 пикселей, а subview-60 пикселей, с буфером 20 пикселей сверху и снизу. Теперь давайте изменим размер супервизора до 150 пикселей в высоту.
- Установка 1: подвидо растет, чтобы сохранить 20px поля, став 110px высокий.
- установка 2: подпространство увеличивается на 50% (60px - > 90px). Верхняя граница по-прежнему 20px, но нижняя граница теперь 40px.
В общем случае обычно требуется поведение в параметре 1. Вы можете использовать параметр 2, Если у вас есть главный/подробный вид, разделенный сверху / снизу, и вы хотите, чтобы обе секции росли пропорционально супервизору. В этом случае вы придадите обоим видам гибкую высоту, фиксируя верхний край верхнего вида и нижний край нижнего вид.
Ответ Би-Джея действительно потрясающий. Но я думаю, что его пример неверен.
Предположим, что супервизор имеет высоту 100 пикселей, а субвью-60 пикселей, с 20px буфер сверху и снизу. Теперь давайте изменим размер супервизора на 150 пикселей в высоту.
Таким образом, для установки 2 верхнее поле, несомненно, все еще 20px, но подвид и нижнее поле должны вырасти на (150 - 20) / (100 - 20) = 62.5%. Рабочую панель высота становится 97.5 военторга, и нижняя граница сейчас 32,5 РХ.
Другими словами, в этом случае должна быть сохранена пропорция высоты подвида к нижнему краю.