본문 바로가기

iOS/iOS

iOS) CGPoint, CGSize, CGRect

 

 

 

안녕하세요 :) 소들입니닷

아 뭔가 포스팅 순서가 엉망엉망인 거 같은데 

뭐 그날그날 재밌는 거 포스팅하는 거닊하....ㅎ

 

쨌든 오늘으은

 

CGPoint

CGSize

CGRect

 

에 대해 알아볼 것임돠ㅎㅎ

이것을 알아보는 것은 Frame vs Bounds에 대해 포스팅 하려 했는데

선행으로 정리해두면 좋을 것 같아서 해봄!!!

 

모든 포스팅은 편의 말투로 합니다~!!

 

 

 

 

 

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

 

자 여러분,

iOS에서 View를 그리기 위해선 어떤게 필요할까여??

 

단순하게 View 하나를 놓고 본다면

먼저, 어디에 그릴지 위치가 필요함

 

 

 

 

이처럼 View의 시작 위치를 알기위한  x, y 좌표가 필요하고,

이 좌표는 iOS 뷰 기준점인 왼쪽 꼭대기(0, 0)으로부터 시작

 

 

 

또, 한 가지 더 필요함

Label 같은 유동적인 크기가 아니라면

시작지점부터 어느 크기만큼 그릴 건지 width, height가 필요

 

 

 

 

자, 이렇게 기초적으로 View를 그릴 때 필요한 것들에 대해 알아 봤음

결론 적으로, 

 

x 좌표

y 좌표

width

height

 

 

이 네가지가 필요함

 

읭 근데 뜬금없이 왜 위의 것들을 설명하냐 묻는다면

이제부터 설명할 CG 3총사가 View를 그릴 때 필수적으로 알아야하는 것이기 때문임

 

 

 

 

 

2. (x, y) 좌표를 설정할 수 있는 CGPoint

 

자, CGPoit라는 구조체 생김새에 대해 먼저 보겠음

 

 

 

 

여기서 중요한 것은 CGPoint는 x, y 라는 Float 변수를 가지고 있단 것임

따라서 View의 위치를 나타낼 땐 이 CGPoint를 이용함

 

CGPoint가 꼭 View의 위치를 나타낼 때만 쓰는 것은 아님

뭐 x, y를 나타내야 할 땐 언제든 CGPoint를 쓸 수 있음

 

 

 

 

실제 사용은 이런 식으루 함!!!

 

이제 CGPoint를 언제 쓰는지 알겠움!?!?!

자 그럼 이제 view의 size (width, height)는 어떤 녀석으로 설정할 지 감이 오지 않음? XD

 

 

 

 

 

 

3. (width, height) 사이즈를 설정할 수 있는 CGSize

 

자, CGSize란 구조체에 대해서도 보자

 

 

 

 

쨔쟌

CGSizewidth, height를 가지고 있음

 

따라서 view의 size를 설정할 때는 이 CGSize를 사용 함!

 

 

 

 

요롷게!!!

 

 

 

.

.

자 근데 여기서 질문

View를 구성할 땐 x, y, width, height가 필요하고

이들은 CGPoint, CGSize를 이용해서 구현한다 했는데..

 

실제 UIView를 init할 땐 frame의 파라미터로 

CGPoint도, CGSize도 아닌 CGRect라는 놈이 들어감...

 

 

 

 

이 놈은 뭘까!?!!?!

 

 

 

 

 

3. CGSize와 CGPoint를 품은 CGRect

 

제목 말 그대로임 CGRect 구조체를 보면

 

 

 

 

자 보이심!!!!???? 👀

 

CGPoint 타입의 변수 origin

CGSize 타입의 변수 size

 

가 각각 존재함 ㅎㅎㅎㅎㅎ

 

따라서 View를 나타낼 때

origin이란 것은 x, y 좌표를,

size라는 것은 width, height를

나타낼 때 쓰는구나! 하면 됨

 

 

 실제 View의 frame에 접근할 때에는

 

 

 

 

이런 식으루 CGPoint, CGSize를 포함한 CGRect를 통해 한번에 정의할 수 있음

근데 위 문법을 더 간단하게

 

 

 

 

이렇게 표현하여 사용함!!!!

 

 

실제 뷰를 정의 할 때도 이렇게 CGRect를 사용해서 정의하면

 

 

 

 

내가 지정한 x, y 좌표에 내가 지정한 width, height로

 

 

 

 

Viewㄱㅏ 그려진답니다 호호~~~~

 

 

 

 

 

 

.

.

당분간은 View에 대해 다룰 예정입니다 :)

재미쪙



Calendar
«   2024/04   »
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
최근 댓글
Visits
Today
Yesterday