본문 바로가기
iOS

[iOS] CGPoin, CGSize, CGRect

by teamnova 2022. 2. 23.
728x90

오늘은 UIKit 의 핵심에 대해 배워보겠습니다. 

 

View의 위치와 크기를 결정하는 방법

 

View를 그리기 위해선 어디에 그릴지 위치크기가 필요하겠죠? 

 

먼저 위치를 표현 봅시다. 

 

View의 시작 위치를 알기위한 x, y 좌표가 필요하고 이 좌표는 iOS 뷰 기준점인 왼쪽 꼭대기(0,0) 으로부터 시작합니다.

 

그리고 한가지 더 필요한게 뭐였죠? 

 

크기죠

 

시작지점부터 어느 크기만큼 그릴건지 width와 height가 필요합니다.

 

 

총 필요한 데이터는 

x 좌표       y 좌표

width       height

 

 

그럼 CGPoint -> CGSize -> CGRect

 

 

2좌표계의 점을 포함하는 구조체

 

이게 무슨 말인지 모르겠으면 Xcode 에서 CGPoint를 입력한 후 command 버튼을 누른 상태로 마우스로 클릭을 하면

 

다음과 같은 창이 뜹니다. Jump to Definition으로 가면 보이겠죠?

 

 

 

 

 

CGFloat의 타입으로 이루어진 구조체 인걸 확인할 수 있는데요 Float과 CGFloat은 뭐가 다른걸까요? 

다시 한번 jump to definition으로 가볼까요 ? 

 

 

 

 

32비트에서는 Float 으로 64비트에서는 Double로 저장된다고 하네요. 

CGPoint가 꼭 View의 위치를 나타낼 때만 쓰는것은 아닙니다. 

x,  y 를 나타내야 할 땐 언제든 CGPoint를 쓸 수 있습니다.

 

 

CGSize

너비와 높이 값을 포함하는 구조체

 

 

view의 size를 설정할 때는 이 CGSize를 사용합니다.

 

 

그렇다면 마지막 CGRect 는 무엇일까요? 

 

CGRect

 

사각형의 위치와 크기를 포함하는 구조체 입니다.

 

 

여기가 제일 중요합니다. 

지금까지 배웠던 CGPoint 와 CGSize가 보이시나요?

 

이 둘을 포함하여 위치와 크기를 포함하기 위한것이 CGRect 입니다.

 

위치 -> CGPoint 

크기 -> CGSize 

 

그럼 CGRect 로 뷰를 생성해 볼까요? 

 

let rect: CGRect = .init(x:150, y:100, width: 150, height: 200)

...

override func viewDidLoad() {
        super.viewDidLoad()
               
        let myView: UIView = .init(frame: rect)
 
        myView.backgroundColor = .yellow
        self.view.addSubview(myView)
 }

 

이렇게 좌표값과 크기를 표시해줍니다.