본문 바로가기

Swift

sizeToFit 함수와 center 속성을 함께 사용하는 경우에 작성 순서

반응형

sizeToFit

  • 뷰의 크기에 맞게 변경, UIView 의 함수 이며 아래와 같이 Label 에 사용하는 경우에는 해당 라벨 길이에 맞게 크기가 변경됩니다.

center

  • 뷰 프레임 사각형의 중심점, 이 역시 UIView 의 함수 이며 Label 프레임의 중심점을 정합니다.

설명

  • 아래와 같이 라벨을 만들 때 sizeToFit 과 center 를 사용하는 경우에는 sizeToFit 을 호출한 후에 center 속성을 설정 해주는 것이 바람직합니다.
  • center 속성은 해당 라벨의 중심점을 정해 주는 역할인데 sizeToFit 함수보다 먼저 오는 경우에는 라벨을 선언했을 때의 길이(y: 100)를 기준으로 설정하기 때문에 원하는 대로 화면에 표시되지 않습니다.
  • 그렇기 때문에 sizeToFit 함수를 호출하여 라벨 길이를 재조정한 다음에 center 속성을 설정해 준다면 변경된 Label 길이를 이용해 중심점을 잡아줄 것입니다.

현재 뷰에 라벨 추가하는 코드

import UIKit
class CustomViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let title = UILabel(frame: CGRect(x: 0, y: 100, width: 100, height: 30))
        title.text = "타이틀"
        title.textAlignment = .center
        title.font = UIFont.systemFont(ofSize: 14)

        title.sizeToFit()
        title.center.x = self.view.frame.width / 2

        self.view.addSubView(title)
    }
}

참고

꼼꼼한 재은 씨의 스위프트 실전편

sizeToFit() - UIView | Apple Developer Documentation

center - UIView | Apple Developer Documentation

반응형