Похоже, вы делаете ограничения в коде. Могу ли я предложить более свежую альтернативу? Используйте якоря, которые намного проще и являются частью любого подкласса UIView
.
. Для вида есть несколько якорей - верхний, нижний, левый или ведущий, правый или конечный , центр x и Y, и высота / ширина наиболее часто используются.
Теперь для любого вида вам нужно сделать две вещи:
Расположите его. В вашем случае вам нужно только расположить кнопку в нижнем или нижнем (б) правом или заднем.
Если она не имеет intrinsi c* Размер 1017 * (ищите лучшее определение, чем я могу дать) придадут вашему взгляду высоту и ширину.
Итак, в вашем случае, скажем, вы w * sh для позиционирования UIButton
, который смещен на 10 пунктов от нижнего правого края экрана. (Имейте в виду, что Apple представила «вставки для безопасной зоны», но это тема для другого вопроса. Опять же, найдите ее, и вы найдете множество примеров.)
button.translatesAutoresizingMaskIntoConstraints = false
Всегда помните чтобы сделать это!
Теперь давайте дадим вашей кнопке размер:
button.widthAnchor.constraint(equalToConstant: 100).isActive = true
button.heightAnchor.constraint(equalToConstant: 50).isActive = true
Наконец, поместите ее:
button.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10).isActive = true
button.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10).isActive = true
Вот и все! Код менее многословен и, следовательно, его легче читать.
Помимо базовых (и безопасных областей), вы также можете программно сделать еще две вещи:
- Изменить константы (и для некоторые представления, множитель), пока вы имя ограничение.
- Выборочно активировать / деактивировать массив ограничений, опять же, если вы устанавливаете их в массиве.
Я считаю, что использование якорей намного проще, и у меня есть другое расположение, основанное на книжной или альбомной ориентации с использованием массивов.