반응형
iOS 개발에서 자주 사용되는 두 가지 메서드, sizeToFit과 sizeThatFits에 대해 이야기해보려 합니다. 이 두 메서드는 뷰의 크기 조정과 관련되어 있지만, 각각의 역할과 사용 방법에는 중요한 차이점이 있습니다. 이 글을 통해 그 차이점을 명확히 이해하고, 언제 어떻게 사용해야 하는지 알아보도록 하겠습니다.
sizeToFit과 sizeThatFits의 차이점
sizeToFit
- sizeToFit은 뷰의 크기를 내용에 맞게 조정하는 메서드입니다.
- 이 메서드를 호출하면, 뷰는 자신의 서브뷰 또는 내용을 기반으로 최적의 크기를 찾아 자동으로 조정됩니다.
- 주로 UILabel, UIButton 등의 콘텐츠 기반 뷰에서 유용하게 사용됩니다.
sizeThatFits
- sizeThatFits는 주어진 크기에 대해 뷰가 얼마나 크기를 가질 수 있는지 계산하는 메서드입니다.
- 이 메서드는 뷰의 크기를 실제로 변경하지 않습니다. 대신, 뷰가 차지할 수 있는 '최적의 크기'를 CGSize 형태로 반환합니다.
- 개발자는 이 정보를 바탕으로 뷰의 frame이나 constraints를 조정할 수 있습니다.
결론
sizeToFit은 텍스트에 맞게 라벨의 크기가 조정, sizeThatFits은 지정된 크기에 적합한 크기를 계산하여 반환됩니다.
sizeThatFits는 UILabel이나 UITextView 등 높이값을 유동적으로 조정하기 위해 많이 사용됩니다.
참고로 sizeThatFits를 UILabel에 적용하여 높이값을 유동적으로 조정하려면 UILabel의 numberOfLines 값이 0이어야 합니다.
사용예시
sizeToFit
let label = UILabel()
label.text = "이 글자는 자동으로 크기가 조정됩니다."
label.sizeToFit()
이 예시에서 sizeToFit은 UILabel의 텍스트에 따라 라벨의 크기를 자동으로 조정합니다.
sizeThatFits
let view = UIView()
let fittingSize = view.sizeThatFits(CGSize(width: 100, height: 100))
// 이제 fittingSize를 사용하여 뷰의 크기를 조정할 수 있습니다.
이 예시에서 sizeThatFits는 주어진 크기(여기서는 100x100)에 대해 뷰가 얼마나 크기를 가질 수 있는지 계산합니다.
결론
sizeToFit과 sizeThatFits는 뷰의 크기를 조정하는 데 매우 유용한 메서드입니다. sizeToFit은 자동으로 뷰의 크기를 내용에 맞게 조정하는 반면, sizeThatFits는 주어진 크기에 대해 뷰가 가질 수 있는 최적의 크기를 계산합니다. 이 두 메서드를 적절히 활용하면, 더욱 동적이고 사용자 친화적인 UI를 구성할 수 있습니다.
반응형
'2023년 부터 > iOS&Swift' 카테고리의 다른 글
[iOS] 공백만 입력되었는지 체크하는 로직 (0) | 2024.01.12 |
---|---|
[iOS] Android System.currentTimeMillis 사용하기 (1) | 2023.11.25 |
[iOS]iOS 개발을 위한 필수 라이브러리: Kingfisher의 쉬운 사용법 (1) | 2023.11.21 |
[Swift] Date에서 Year, Month, Day 추출 및 날짜 차이 비교 (1) | 2023.11.21 |
[iOS] UITextField 글자수 제한, 백스페이스 처리 (0) | 2023.11.21 |