뷰가 고유 크기보다 커지는 것을 방지하는 우선 순위를 설정합니다.
우선순위를 설정하여 어떤 subView의 크기를 조절할 지 결정할 수 있다.
예를 들어
다음과 같이 명언과 명언가를 나타내는 quoteLabel과 nameLabel이 있을 때
뷰 내에서 quoteLabel의 높이가 조정되어 제약을 만족시키고자 할 때 setContentHuggingPriority() 메서드를 사용한다.
override func viewDidLoad() {
super.viewDidLoad()
colorView.addSubview(quoteLabel)
colorView.addSubview(nameLabel)
//quoteLabel과 nameLabel constraints 생략하였습니다.
self.quoteLabel.setContentHuggingPriority(.defaultLow, for: .vertical)
self.nameLabel.setContentHuggingPriority(.defaultHigh, for: .vertical)
}
그러나 만약 우선순위를 수치로 지정하고 싶다면
self.quoteLabel.setContentHuggingPriority(UILayoutPriority(750), for: .vertical)
self.nameLabel.setContentHuggingPriority(UILayoutPriority(751), for: .vertical)
뷰가 고유 크기보다 작게 만들어지지 않도록 하는 우선 순위를 설정합니다.
예를 들어 quoteLabel의 text가 매우 많아졌을 때
self.quoteLabel.setContentCompressionResistancePriority(.defaultHigh, for: .vertical)
self.nameLabel.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
다음과 같이 그 text를 최대한 다 보여주려고 하지만
self.quoteLabel.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
self.nameLabel.setContentCompressionResistancePriority(.defaultHigh, for: .vertical)
다음과 같이 ... 으로 생략하여 보여준다.