के अनुसार NSLayoutConstraints class
अंदर UIKit Module
यदि एक बाधा का प्राथमिकता स्तर UILayoutPriorityRequired से कम है, तो यह वैकल्पिक है। उच्च प्राथमिकता की कमी को कम प्राथमिकता की बाधाओं से पहले पूरा किया जाता है। बाधा संतुष्टि सभी या कुछ भी नहीं है। यदि कोई बाधा 'a == b' वैकल्पिक है, तो इसका मतलब है कि हम 'abs (ab)' को कम करने का प्रयास करेंगे। यह संपत्ति केवल प्रारंभिक सेट अप या वैकल्पिक के हिस्से के रूप में संशोधित की जा सकती है। एक दृश्य में एक बाधा जोड़े जाने के बाद, प्राथमिकता को NSLayoutPyerityRequired से / से बदल दिया जाता है, तो एक अपवाद को फेंक दिया जाएगा।
उदाहरण: - UIButton
विभिन्न प्राथमिकताओं के साथ अड़चनें -
func setConstraints() {
buttonMessage.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint(item: buttonMessage, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1.0, constant: -10).isActive = true
let leading = NSLayoutConstraint(item: buttonMessage, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1.0, constant: 10)
leading.isActive = true
let widthConstraint = NSLayoutConstraint(item: buttonMessage, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 100)
let heightConstraint = NSLayoutConstraint(item: buttonMessage, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 50)
let trailingToSuperView = NSLayoutConstraint(item: buttonMessage, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0)
trailingToSuperView.priority = 999
trailingToSuperView.isActive = true
buttonMessage.addConstraints([widthConstraint,heightConstraint])
}