본문 바로가기
2023년 부터/iOS&Swift

[iOS] iOS 개발에서의 핵심 이해: sizeToFit과 sizeThatFits

by JeongUPark 2023. 11. 21.
반응형

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를 구성할 수 있습니다.

반응형