Basi c Autolayout проблема, кнопка изменения размера после установки ограничений - PullRequest
0 голосов
/ 06 января 2020

Извините за вопрос super basi c, я не понимаю, почему (или как) Autolayout автоматически изменяет размеры кнопок / надписей после установки ограничений на безопасную область / вид.

Здесь - короткое видео, демонстрирующее мою точную проблему. Я хочу, чтобы кнопка размером 200x100 располагалась по центру горизонтально в верхней части экрана, почему она изменяет свой размер после установки ограничений?

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

Ответы [ 3 ]

2 голосов
/ 06 января 2020

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

Ознакомьтесь с демонстрацией ниже того, как я устанавливаю ширину кнопки, равную 200, высоту, равную 100, смещение от вершины safeArea до 20 и горизонтальное центрирование кнопки:

Setting autolayout constraints

1 голос
/ 06 января 2020

Вы должны установить ограничения для ширины и высоты, а не только размер в Инспекторе размера. Убедитесь, что вы установили их следующим образом: setting constraints

1 голос
/ 06 января 2020

Два базовых c правила автоматического размещения:

  1. Автоматическое расположение и фрейм / размер являются противоположными. Вы можете использовать только один из них.

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

Итак, сначала в своем видео вы используете кадр / размер. Таким образом, кнопка соответствует вашим настройкам размера.

Но затем вы можете добавить некоторые ограничения. В этот момент вы используете autolayout - и ваши параметры рамки / размера перестают что-либо значить.

Ну, правило для чего-то вроде кнопки или метки таково, если вы явно не установите ограничения ширины и высоты с помощью желаемые значения констант, он будет масштабироваться по своему содержанию как автоматический c запасной вариант (используя свои собственные внутренние ограничения, которые вы не видите). Вот что он делает.

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

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