Вот что документация UIView.addConstraint
говорит:
Ограничение должно включать только представления, которые находятся в области действия принимающего представления. В частности, любые участвующие представления должны быть либо самим принимающим представлением, либо подвидом принимающего представления.
Поскольку button.superview
не является button
и не является подпредставлением button
, ограничение не может удерживаться button
.
Поскольку button
является подпредставлением button.superview
, ограничение может удерживаться button.superview
(или любым предком button.superview
).
Однако вместо поиска ограничения по идентификатору вы можете создать для него выход:
@IBOutlet var buttonXCenterConstraint: NSLayoutConstraint!
Подключите розетку к ограничению в вашей раскадровке.