티스토리 뷰
안녕하세요 :) Zedd입니다.
오늘은!! CGRect와 CGSize의 차이에 대해서 알아볼거에요 :-)
+ 원래 CGRect와 CGSize의 차이점만 쓰고있었는데, 쓰다보니 CGPoint도 설명해야하게됐네요 XD..
이번에 프로젝트하면서 스토리보드가 아닌, 코딩으로 View를 생성하고 넣어주는 그런 걸 좀 했었는데,
CGRect랑 CGSize의 차이가 궁금하더라구요!!
시작할게요 ~.~
CGRect와 CGSize의 차이, 그리고 CGPoint
일단.......모르는게 있으면.....애플문서...
CGRect와 CGSize의 차이점이라 썼지만, 이해를 돕기위해..
CGPoint -> CGSize -> CGRect순으로 설명드릴게요 XD 왜인지는 읽으시면 알 수 있어요!
● CGPoint
정의 : 2차원 좌표계의 점을 포함하는 구조체.
정말 간단하게 생각하시면 됩니다. 우리 x축, y축 많이 봤었죠? 거기서 뭐 (1,2)이런식으로 점을 찍었을 거에요.
1은 x좌표, 2는 y좌표를 나타내죠.
iOS에서 그것을 나타내주는 것이 CGPoint입니다.
CGPoint가 코드상으로 어떻게 구현되어있는지 볼까요?
정말 x좌표, y좌표를 가지는 구조체네요!
● CGSize
정의 : 너비와 높이 값을 포함하는 구조체
CGSize도 "사각형"으로 나타내지곤 하지만, 이것만 기억하세요. CGSize는 너비와 높이의 값입니다. 실제로 사각형으로 간주되지 않아요. 하지만, 일러스트레이션을 위해 아래그림과 같이 나타내지곤 한답니다.
보통 위와같이 그려지기 때문에, 실제로 CGRect와 헷갈려하는 사람들이 많답니다.
CGSize가 코드상으로 어떻게 구현되어있는지 볼까요?
정말 너비와 높이만 가지고 있네요?
● CGRect
정의 : 사각형의 위치와 크기를 포함하는 구조체.
CGRect는 CGSize와 다르게, 사각형이에요. 이름에서부터 Rect죠?(Rectangle-사각형)
CGRect는 너비와 높이를 가지고 있을 뿐만 아니라 원점(origin)을 가지고 있습니다.
바로 아래그림 처럼 말이죠.
CGSize와는 다르게, origin을 가지고 있네요.
CGRect가 코드상으로 어떻게 구현되어있는지 볼까요?
먼저, 구조체 변수로는 origin과 size라는 것을 가지고 있네요.
그런데,
origin의 타입은 위에서 설명드린 CGPoint, size의 타입은 위에서 설명드린 CGSize네요.
CGRect는 사각형이라고 그랬죠?
현실에서는 너비와 높이만 있어도 사각형을 그릴 순 있지만, iOS에서는 "위치"를 알아야 그릴 수 있답니다.
CGRect의 정의가 뭐라고 그랬죠?
정의 : 사각형의 위치와 크기를 포함하는 구조체.
바로 이렇게요.
CGRect를 사용해볼까요?
init이 정말 많네요.
우리가 배운 CGPoint와 CGSize를 사용해서 CGRect를 정의해볼게요.
물론 CGPoint와 CGSize를 쓰지않고 바로 x, y, width, height를 바로 줄 수 있어요!
어떠신가요 ㅎㅎ CGRect와 CGSize의 개념과 차이, 그리고 CGPoint의 개념을 조금 아시겠나요!?
아직 잘 모르겠다!!!또는 글에 이상한점이 있다면 댓글이나, PC화면 오른쪽 하단에 있는 채널서비스를 이용해주세요 :)
View를 코드로 구현한다면, 꼭 알아야하는 지식?같아요.ㅎㅎ
그럼 오늘도 도움이 되었길 바라며..🙏
'iOS' 카테고리의 다른 글
iOS ) 기기별 화면 미리보기 (0) | 2017.09.11 |
---|---|
iOS ) Frame과 Bounds의 차이 (1/2) (26) | 2017.09.08 |
iOS ) 왕초보를 위한 프로젝트에 Custom Font추가하는 방법 (12) | 2017.09.04 |
iOS ) Navigation bar Title 변경방법 (2) | 2017.08.24 |
iOS ) 내 사진앨범/카메라에서 이미지 가져오기 (27) | 2017.08.19 |
- np-complete
- iOS delegate
- 제이슨 파싱
- FLUTTER
- ios 13
- swift3
- WidgetKit
- swift tutorial
- 스위프트
- WWDC
- SwiftUI
- 회고
- swift sort
- Combine
- UIBezierPath
- Swift
- np-hard
- WKWebView
- Git
- IOS
- Accessibility
- swift array
- github
- 피아노
- swift 공부
- Xcode
- actor
- swift delegate
- fastlane
- 스위프트 문법
- Total
- Today
- Yesterday