ตามNSLayoutConstraints class
ด้านใน UIKit Module
หากระดับความสำคัญของข้อ จำกัด น้อยกว่า UILayoutPriorityRequired แสดงว่าเป็นทางเลือก พบข้อ จำกัด ที่มีลำดับความสำคัญสูงกว่าก่อนข้อ จำกัด ลำดับความสำคัญต่ำ ความพึงพอใจที่มีข้อ จำกัด ไม่ใช่ทั้งหมดหรือไม่มีเลย หากข้อ จำกัด 'a == b' เป็นทางเลือกนั่นหมายความว่าเราจะพยายามย่อ 'abs (ab)' ให้น้อยที่สุด คุณสมบัตินี้สามารถแก้ไขได้เฉพาะเป็นส่วนหนึ่งของการตั้งค่าเริ่มต้นหรือเมื่อเป็นทางเลือก หลังจากเพิ่มข้อ จำกัด ในมุมมองแล้วข้อยกเว้นจะถูกโยนทิ้งหากลำดับความสำคัญถูกเปลี่ยนจาก / เป็น NSLayoutPriorityRequired
ตัวอย่าง: - 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])
}