На самом деле кажется, что требуется три строки кода, чтобы установить приоритетное ограничение на основе привязки в коде:
let widthConstraint = meetingFormView.widthAnchor.constraint(equalToConstant: 170)
widthConstraint.priority = UILayoutPriority(rawValue: 500)
widthConstraint.isActive = true
Похоже, что если я пытаюсь установить isActive
с объявлением let
, Xcode (может быть, Swift?) Не распознает, что типом является NSLayoutConstraint
. И использование UILayoutPriority(rawValue:)
кажется лучшим (только?) Способом установки приоритетов.
Хотя этот ответ не соответствует точно тому, что вы делаете, я считаю, что он будет работать с IB. Просто замените let
на создание IBOutlet
, и в строке isActive
не должно быть необходимости.
Очевидно, что на изменить приоритет позже в коде, который вам просто нужен:
widthConstraint.priority = UILayoutPriority(rawValue: 750)