[ Swift ] CG

2020. 12. 29. 13:15카테고리 없음

iOS에서 뷰를 다룰 때 자주 등장하는 CGFloat, CGRect, CGPoint 등등 CG 들을 많이 봤습니다.

 

이 때 CG는 Core Graphics 의 약자입니다.

 

CG에대해 가볍게 알아봅시다.

 

Core Graphics?

 

Core Graphics 코어 그래픽스 ( 이하 CG ) 는 2D 렌더링. 즉 2차원에서 그리는 작업에서 사용되는 개념입니다.

 

공식문서를 보면 Quartz기술을 사용해서 가볍고 정확하게 그릴 수 있다고 나오는데요,

보면 드로잉, 그라데이션, 색상, PDF등등 다양하고도 폭넓게 사용된다고 해요 !

 

깊게 알면 좋겠으나 다름기회로 넘기고 CG는 2차원을 위해 사용되는 개념이구나,

iOS에서 CG가 붙은 애들은 2차원 좌표계를 그리기 위해 사용되는 애들이겠구나,  라는 정도만 알고 넘어갑시다!

 

CG필수자료구조.

기본적으로 CG가 붙은 자료구조들에 대해 알아보겠습니다.

 

4가지를 알아볼게요 : CGFloat, CGPoint, CGSize, CGRect

 

CGFloat

뷰를 그리는 작업은 부동 소수점 숫자를 좌표로 하는 시스템에서 이루어집니다.

뷰의 좌표시스템에서는 정수나 Double, Float 이 아닌 CGFloat이 기본 좌표값이 됩니다

물론 CGFloat에 여러 initializer가 있어서 Double이나 Float으로 CGFloat을 만들 수 있습니다.

let cgf = CGRloat(aDouble)

CGPoint

CGFloat 타입인 변수 x, y가 들어있는 구조체 입니다.

 

CGSize

CGFloat 타입의 높이, 너비가 들어있는 구조체 입니다.

 

CGRect

CGPoint와 CGSize를 결합한 구조체 입니다.

CGRect는 직사각형을 뜻합니다. 뷰를 이루는 기본 단위라고 생각하면 되는데 많은 init과 메소드를 가지고 있습니다.

struct CGRect {
	var origin: CGPoint
    var size: CGSize
}

//eg
var minY: CGFloat // 왼쪽 위 모서리
var midY: CGFloat // 수직 중간 값

intersects(CGRect) -> Bool //다른 직사각형과 겹치는지 확인
intersect(CGRect) // 두 직사각형이 겹치는 부분을 리턴
contains(CGPoint) -> Bool //해당 점이 포함되는지 확인

 

좌표시스템

좌표시스템이란 뷰가 그려기는 2차원 평면공간을 의미합니다.

 

 

woongsios.tistory.com/150