Когда UIKit автоматически удаляет ограничения - PullRequest
0 голосов
/ 18 февраля 2019

В моем updateLayoutConstraints я добавляю ограничения, а затем я вызываю super.updateLayoutConstraints().Согласно документации Apple, это выглядит нормально, однако UIKit автоматически удаляет ограничения перед вызовом этой функции?

Я считаю, что это работает нормально, но я обеспокоен тем, что простодобавление ограничений того же типа.

Когда UIKit автоматически удаляет ограничения или нет?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Ограничения предназначены для размещения элементов пользовательского интерфейса, поэтому в обычных ситуациях он не удаляется.

Ниже приведены несколько ситуаций, когда ограничение автоматически удаляется или просто не удовлетворяется решателем ограничений:

  • когда все представления, к которым прикреплено ограничение, удалены
  • в случае конфликтующего ограничения , но вы увидите такую ​​ошибку

    Невозможно одновременно удовлетворить ограничения, попытается выполнить восстановление, нарушив ограничение

Обычно я добавляю ограничения при инициализации представления, например:

  • viewDidLoad из UIViewController
  • init из UIView, то есть подкласса и не имеет раскадровки xib
  • awakeFromNib из UIView, что подкласса и делаетесть раскадровка
0 голосов
/ 18 февраля 2019

Нет updateConstraints не удаляет добавленные вами ограничения.Если вы хотите избежать добавления дублирующих ограничений, вам нужно установить флаг или сохранить ссылки на уже созданные ограничения.

...