У меня есть, UIView
и я установил ограничения с помощью Xcode Interface Builder.
Теперь мне нужно программно обновить эту UIView's
константу высоты.
Есть такая функция myUIView.updateConstraints()
, но я не знаю, как ее использовать.
swift
xcode
autolayout
nslayoutconstraint
ios-autolayout
Крис Миккельсен
источник
источник
Ответы:
Выберите ограничение высоты в конструкторе интерфейсов и воспользуйтесь его выходом. Итак, если вы хотите изменить высоту представления, вы можете использовать приведенный ниже код.
Метод
updateConstraints()
- это метод экземпляраUIView
. Это полезно при программной установке ограничений. Он обновляет ограничения для представления. Для более подробной информации щелкните здесь .источник
Если у вас есть представление с несколькими ограничениями, гораздо более простой способ без создания нескольких выходов:
В построителе интерфейса дайте каждому ограничению, которое вы хотите изменить, идентификатор:
Затем в коде вы можете изменить несколько ограничений следующим образом:
Вы можете дать нескольким ограничениям один и тот же идентификатор, что позволит вам группировать ограничения и изменять все сразу.
источник
Изменить
HeightConstraint
иWidthConstraint
не создаватьIBOutlet
.Примечание. Назначьте ограничение высоты или ширины в файле раскадровки или XIB. после получения этого ограничения с помощью этого расширения.
Вы можете использовать это расширение для получения ограничения высоты и ширины:
Ты можешь использовать:
источник
first(where: ...)
который можно использовать сразу вместоfilter
+first
Перетащите ограничение в свой VC как IBOutlet. Затем вы можете изменить связанное с ним значение (и другие свойства; проверьте документацию):
источник
источник
Если описанный выше метод не работает, обязательно обновите его в блоке Dispatch.main.async {}. Тогда вам не нужно вызывать метод layoutIfNeeded ().
источник
Сначала подключите ограничение высоты к нашему viewcontroller для создания IBOutlet, как показано ниже.
затем поместите приведенный ниже код в поле зрения, загрузилось или внутри каких-либо действий
если он находится внутри нажатия кнопки
источник
Чтобы обновить ограничение макета, вам нужно только обновить свойство константы и после этого вызвать layoutIfNeeded.
источник
источник