Каков наилучший подход, деактивировать ограничения или изменить приоритет? - PullRequest
0 голосов
/ 12 октября 2018

Я не очень хорошо понимаю, AutoLayout.Так как я пытаюсь сделать несколько анимаций с некоторыми элементами UIE, мне нужно деактивировать / активировать ограничения или я должен использовать приоритет якорей?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете посмотреть WWDC видео о технологии Auto Layout .Ядро автоматического макета - Линейное программирование .Для решения этих линейных задач используется решатель ограничений .

Как и у изображения WiKi , эти правила автоматического размещения такие же, как у Problem constraints, и существует ТОЛЬКО глобальный оптимум для решения этих ограничений.Если не существует глобального оптимального решения этих ограничений, то эти правила имеют конфликты.

WiKi image


Из видео WWDC я научился определять группыограничения для реализации анимации путем деактивации группы А, а затем активации группы В.Иногда мне нравится изменять свойства ограничений, чтобы реализовать эффект анимации.Если этот подход делает мои коды чистыми и легкими для понимания, тогда я использую этот подход.

свойство: isActive

официальный документ Apple

Автоматическая разметкаограничения могут быть связаны с @IBOutlet с xib и storyboard.NSLayoutConstraint имеет свойство с именем isActive .Вы можете определить группы ограничений.Но перед тем, как вы активируете / деактивируете ограничения, всегда сначала делайте деактивацию.Во избежание конфликтов ограничений.Я получил это из видео WWDC.

свойство: константа, множитель

Вы можете изменить множитель и константу ограничения во время выполнения.После обновления свойств ограничения вызовите setNeedsupdateConstraints и updateConstraintsifNeeded из UIView, чтобы применить эти изменения.

...