Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 애니메이션
- swiftUI
- 리팩토링
- combine
- SWIFT
- uiscrollview
- UITextView
- clean architecture
- Human interface guide
- 리펙토링
- collectionview
- tableView
- rxswift
- Observable
- Clean Code
- HIG
- UICollectionView
- Protocol
- MVVM
- swift documentation
- 리펙터링
- ios
- map
- Refactoring
- Xcode
- uitableview
- RxCocoa
- 스위프트
- 클린 코드
- ribs
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] setContentHuggingPriority, setContentCompressionResistancePriority 개념 본문
iOS 기본 (swift)
[iOS - swift] setContentHuggingPriority, setContentCompressionResistancePriority 개념
jake-kim 2021. 8. 22. 23:01setContentHuggingPriority
- 뷰가 고유 크기보다 커지는 것을 방지하기위해 우선 순위를 설정하는것
- 커지지 않게 하다 = "Hugging"
setContentCompressionResistancePriority
- 뷰가 고유 크기보다 작게 되는것을 방지하기위해 우선 순위를 설정하는것
- 작게 되지 않게 하다 = "CompressionResistance"
예제
- StackView안에 lable2개가 있지만 stackView의 너비가 autolayout으로 잡혀있지 않아서 동적으로 늘어나는 경우는 필요없는 상황
- StackView의 너비가 정해진 상황 > stackView의 alignment = .fill이 디폴트설정되어 있으므로, 두 label이 커져야 하는데, 어떤것을 고유 크기보다 커지지 않도록 할지 정해지지 않은 상태
- 시스템에서 오류에 대해 제안: hugging의 우선순위를 주어서 어떤 label이 intrinsic content size보다 커지지 않게 할지 결정
- leftLabel의 hugging값을 높인 경우: 왼쪽으로 당겨옴 > 왼쪽의 label을 intrinsic content size보다 커지지 않도록 설정했기 때문에 오른쪽의 view가 intrinsic content size보다 커지게 된것
- rightLabel의 intrinsic content size를 늘릴 경우 > 에러
- 에러: 시스템에서 CompressionResistance 우선순위를 정하게끔 제안: hugging을 통해 고유 크기보다 커지는것을 방지하는 우선순위를 정했지만, 어떤것을 고유 크기보다 작지 않도록 하는 우선순위가 정해지지 않은 상태
- compressionResistance설정
leftLabel > rightLabel | leftLabel < rightLabel |
정리
- Hugging > intrinsicContentSize보다 뷰가 더 길어져야 하는 상황에서 어떤 뷰가 길어지지 않게 할지에 대한 기준이 필요할때
- compressionResistance > intrinsicContentSize보다 뷰가 더 작아져야 하는 상황에서 어떤 뷰가 더 작아져야 하는 기준이 필요할때
- 핵심: 뷰와 intrinsic content size 간의 비교
참고
- https://developer.apple.com/documentation/uikit/uiview/1622485-setcontenthuggingpriority
- https://developer.apple.com/documentation/uikit/uiview/1622526-setcontentcompressionresistancep
'iOS 기본 (swift)' 카테고리의 다른 글
Comments