Почему я получаю сообщение об ошибке при попытке активировать ограничение? - PullRequest
0 голосов
/ 31 марта 2019

Я только что задал вопрос об изменении высоты 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. Не уверен, почему это так - любая помощь очень ценится. Спасибо, Ян

...