Я только что задал вопрос об изменении высоты UIView с пропорциональным ограничением. Проблема заключалась в том, что я должен был использовать активировать и деактивировать для ограничений.
Это прекрасно работает один раз, но я хочу переключаться между двумя ограничениями.
У меня есть UIView под названием topView и два ограничения:
@IBOutlet var cHtTopView1: NSLayoutConstraint!
@IBOutlet var cHtTopView2: NSLayoutConstraint!
Первый масштабирует UIView в 0,3 раза выше высоты суперпредставления, второй - 0,5.
Это работает один раз:
@IBAction func buttonTouchUpInside(_ sender: Any) {
NSLayoutConstraint.deactivate([self.cHtTopView1])
NSLayoutConstraint.activate([self.cHtTopView2])
}
Однако, если у меня есть другая кнопка, которая пытается активировать cHtTopView1, выдает ошибку. Я уверен, что это потому, что ограничение удалено из кода.
Итак, я тогда попробовал это:
@IBAction func buttonTouchUpInside(_ sender: Any) {
self.topView.removeConstraint(self.cHtTopView1)
self.topView.addConstraint(self.cHtTopView2)
}
Это выдает ошибку в .addConstraint.
Не уверен, почему это так - любая помощь очень ценится.
Спасибо, Ян