Итак, если я правильно понял, проблема, с которой вы сталкиваетесь, заключается в том, что ваша кнопка возврата не может быть расположена в нижней части прокрутки.
Прокрутка имеет два набора ограничений в раскадровке, один из которых определяет размер прокрутки, а другой определяет размер содержимого. Верхний, левый, нижний, правый и верхний ограничения в представлении прокрутки определит размер.
Часть, которая вызывает вашу проблему, заключается в том, что размер содержимого определяется подзонами внутри прокрутки. Таким образом, кнопка не может быть размещена относительно нижней части прокрутки, так как представление прокрутки не знает, насколько большой размер его содержимого. Все подзоны вида прокрутки должны быть размещены относительно друг друга.
Итак, создайте ограничения для вашего логотипа, текстовых полей и всех кнопок по отношению друг к другу. Затем создайте ограничения с внешнего большинства подзонов на представление прокрутки.
В вашем примере вы могли бы ограничить логотип от текстового поля, 1-го текстового поля до второго текстового поля, затем 2-й текст летел на ярлык, назовите кнопку «Отправить письмо ...» и, наконец, Отправить письмо ... "в" Подтвердить код ". Для кнопки «Назад» для этого потребуется выравнивание по левому краю с текстовыми полями, а затем выравнивание по центру с помощью кнопки «Проверить код». Создайте верхнее ограничение от логотипа до прокрутки. Затем имеют ведущие и конечные ограничения из одного из текстовых полей в представление прокрутки. Наконец, создайте нижнее ограничение от кнопок «Назад» или «Проверить код» до прокрутки. Вам также понадобятся некоторые ограничения выравнивания (логотип-центр в текстовое поле является примером одного). После этого все настройки будут полностью определены для размера содержимого прокрутки.
Если я вас понимаю, мой новый вопрос: как я могу сделать подвиды сделать высоту прокрутки подходят 100% высоты экрана устройства? Есть ли способ определения весов, например Android, ? Я не знаю, как достичь этого , так как холст 600 * 600, который отличается от каждого устройства.
ответ был бы слишком долго комментарий:
Таким образом, вы не будете использовать вид прокрутки для этого. Прокрутка предназначена специально для содержания содержимого, которое не будет помещаться на экране (чтобы пользователь мог прокручивать его, чтобы достичь нового содержимого).
Самое простое решение состоит в том, чтобы добавить обычный вид с ограничениями расстояния TopLeftBottomRight 0 (так что это максимальная высота и ширина экрана) и настроить вид, как у вас здесь, чтобы расположить нижнюю часть в нижней левой части экрана. время.
Существует также система весов, я могу объяснить это, если вы хотите, но пока это не требуется.
Я чувствую, что ваш следующий ответ будет чем-то вроде «что, если я хочу, чтобы он прокручивался, когда он слишком мал для текущего экрана?». Единственный способ, которым я знаю, это сделать инкапсуляцию всего вашего интерфейса в единый UIView и изменить его размер в viewDidLoad/viewDidAppear на основе размера прокрутки. Что-то вроде этого:
func viewDidLoad() {
super.viewDidLoad()
containerViewHeightConstraint.constant = scrollView.frame.size.height
containerViewWidthConstraint.constant = scrollView.frame.size.width
}
Удалить верхнее ограничение из проверки кода. – KKRocks
Я обновил вопрос, потому что происходит то же самое с кнопкой «Назад» – Ricardo
ОК, затем удалите ограничения высоты из scrollview, поскольку scrollview занимает высоту из своего подвью. – KKRocks