오토레이아웃에서 항상 방정식처럼 제약조건이 성립하는 것은 아니다. 부등식도 우리는 오토레이아웃에서 사용할 수 있다. 애플다큐먼트를 보면

이렇게 부등식이 성립하는 경우가 있다. 여기서 보면 결국은 40 <= View.width <= 280 이라는 것을 알수 있다. 즉 View의 너비는 40과 280 사이의 어떠한 값을 의미한다. 즉, 우리가 이 뷰의 너비의 최대값과 최소값을 정해주는 것이다. 하지만 이러한 부등식이 있는 제약조건을 어떻게 사용해야할까? 이것의 연장선 상에는 Constraint Priorities가 있다.
Constraint를 한 뷰에다가 계속 추가하게 되면 변경되는 것이 아니라, 계속 제약이 추가된다. 이렇게 되는 이유는 우리는 제약조건에 대한 우선순위를 설정할수 있게 되기 때문이다. 이렇게 설정된 우선순위는 높은 순서가 먼저 뷰에 적용된다.
결국 우선순위가 높은 제약조건이 우선순위가 낮은 어떤 제약조건과 상반된다면, 낮은 제약 조건은 무시될 것이라는 소리이다.


예를들어 설명하자면 위와 같다
이 둘은 서로 상반되는 Constraint라고 볼수 있다. 하나는 30이고 하나는 100만큼 떨어지라고 하고 있다. 하지만 Priority가 30은 250이고 100은 1000이기에 결국 앞의 Constraint는 무시된다.

반면에 둘다 priority가 1000이라면 충돌을 하게 될 것이다.


이런식으로 부등식을 사용해서 먼저 조건을 만족시킬때, 그다음 Constraint를 적용시킬수 있을 것이다. 하지만 여기서 Equal 30을 없앤다면 또 오류가 날 것이다. 왜나면 100보다 작은 어떤 Constant 값인데, 그게 몇인지 모르겟다는 것이다!!! Priority는 뒤에 더 많이 사용될 예정이다!
| [오토레이아웃]Content Compression, Content hugging(CHCR) (0) | 2021.07.05 |
|---|---|
| [오토레이아웃] Intrinsic Content Size (0) | 2021.07.05 |
| [오토레이아웃] Constraints on Storyboard (0) | 2021.07.04 |
| [오토레이아웃] Nonambiguous Layout 와 다양한 해결책 (0) | 2021.07.04 |
| [오토레이아웃] Constraint (0) | 2021.07.04 |
댓글 영역