Вы можете посмотреть WWDC видео о технологии Auto Layout .Ядро автоматического макета - Линейное программирование .Для решения этих линейных задач используется решатель ограничений .
Как и у изображения WiKi , эти правила автоматического размещения такие же, как у Problem constraints
, и существует ТОЛЬКО глобальный оптимум для решения этих ограничений.Если не существует глобального оптимального решения этих ограничений, то эти правила имеют конфликты.
Из видео WWDC я научился определять группыограничения для реализации анимации путем деактивации группы А, а затем активации группы В.Иногда мне нравится изменять свойства ограничений, чтобы реализовать эффект анимации.Если этот подход делает мои коды чистыми и легкими для понимания, тогда я использую этот подход.
свойство: isActive
официальный документ Apple
Автоматическая разметкаограничения могут быть связаны с @IBOutlet
с xib
и storyboard
.NSLayoutConstraint
имеет свойство с именем isActive .Вы можете определить группы ограничений.Но перед тем, как вы активируете / деактивируете ограничения, всегда сначала делайте деактивацию.Во избежание конфликтов ограничений.Я получил это из видео WWDC.
свойство: константа, множитель
Вы можете изменить множитель и константу ограничения во время выполнения.После обновления свойств ограничения вызовите setNeedsupdateConstraints и updateConstraintsifNeeded из UIView
, чтобы применить эти изменения.