UILayoutPriority
는 0~1000의 값을 가진다..required == 1000
.defaultHigh == 750
.defaultLow == 250
lessThanOrEqualTo
나 greaterThanOrEqualTo
는 다른 제한조건과 같이 쓰인다. 만약 다른 제한조건이 없다면 equal로 간다!위의 두 아이폰 기종을 통하여 priority에대해 이해를 해보자.
// 1)
let safeBottonAnchor = button.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
safeBottonAnchor.isActive = true
safeBottonAnchor.priority = .init(999)
// 2)
// priority를 설정하지 않으면 자동으로 .required이다.
let viewBottonAnchor = button.bottomAnchor.constraint(lessThanOrEqualTo: view.bottomAnchor, constant: -20)
viewBottonAnchor.isActive = true
→ 즉, 먼저 priority가 높은 2)의 constraint를 따라가지만, 1)의 제한 조건이 2)의 조건도 만족하므로, 최종적으로는 1)의 constraint를 따라가게된다.
→ 즉, SE 또한 priority가 높은 2)의 constraint를 따라가고, 1)의 제한 조건이 2)의 조건을 만족하지 않으므로, 최종적으로는 2)의 constraint를 따라가게된다.
위와 같이 priority를 활용하면, 14나 SE 둘 다에서도 적당한 bottom inset을 가지게 설정할 수 있다.(super view의 bottom에서 적당한 위치에 떠 있는..)