Xcode Interface Builder.Чем отличаются эти настройки маски для автоматического изменения размера? - PullRequest
8 голосов
/ 22 марта 2012

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

Настройка 1
Автоматическое изменение как с верхним, так и снижние привязки http://dl.dropbox.com/u/11270323/stackoverflow/autosize-mask-0.png

Настройка 2
Автоматическое изменение размера только с помощью привязки uppper http://dl.dropbox.com/u/11270323/stackoverflow/autosize-mask-1.png

Некоторый контекст.Подкласс UIView, который использует эти настройки, является дочерним подвидом.Настройка 1 дает мне поведение, которое я хочу - подпредставление расширяется / сжимается со своим родительским представлением - в то время как настройка 2 немного отличается неочевидным образом.

Какая разница в планировке между этими двумя настройками?

Спасибо,
Дуг

Ответы [ 2 ]

22 голосов
/ 22 марта 2012

Настройка 1: Размер изображения будет изменен по вертикали, чтобы сохранить как расстояние от верха суперпредставления, так и расстояние от низа суперпредставления. По сути, представление будет расти и уменьшаться в тандеме с суперпредставлением; если суперпредставление становится выше на 30 пикселей, то будет и это представление.

Настройка 2: Размер изображения будет изменен по вертикали, чтобы сохранить расстояние от вершины суперпредставления и сохранить пропорциональную высоту вида . В основном, представление будет расти пропорционально с суперпредставлением; если суперпредставление становится выше на 10%, это представление также становится выше на 10%.

Обратите внимание, как они различаются на практике. Предположим, что суперпредставление имеет высоту 100px, а подпредставление имеет высоту 60px, с буфером 20px сверху и снизу. Теперь давайте изменим суперпредставление до 150px.

  • Настройка 1 : подпредставление увеличивается для сохранения полей в 20px, достигая высоты 110px.
  • Настройка 2 : подпредставление увеличивается на 50% (60px -> 90px). Верхнее поле по-прежнему составляет 20 пикселей, но нижнее поле теперь составляет 40 пикселей.

В общем случае вам обычно требуется поведение в настройке 1. Вы можете использовать настройку 2, если у вас был общий / подробный вид сверху / снизу, и вы хотели, чтобы оба раздела росли пропорционально с суперпредставлением. В этом случае вы даете обоим видам гибкую высоту, фиксируя верхнее поле нижнего вида и нижнее поле нижнего вида.

0 голосов
/ 14 февраля 2016

BJ ответ действительно потрясающий. Но я думаю, что его пример неверен.

Предположим, что суперпредставление имеет высоту 100px, а подпредставление высотой 60px, с буфер 20px сверху и снизу. Теперь давайте изменим размер Superview, чтобы Рост 150px.

Таким образом, для Установка 2 , верхнее поле, несомненно, все еще равно 20px, но и подпредставление, и нижнее поле должны вырасти на (150-20) / (100-20) = 62,5%. Высота подпредставления становится 97,5 пикселей, а нижнее поле теперь составляет 32,5 пикселей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...