[iOS์์ Graphic ์์๋ค์ ๊ทธ๋ ค๋ด๊ธฐ ์ํด ์กด์ฌํ๋ ๊ฒ๋ค]
Core Graphics ์์ UIKit ์ผ๋ก ๊ฐ ์๋ก ๊ฐํธํด์ง๊ณ ์ฝ๋๋๋ ์ค์์ง๋ง ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ํ๋๋ค. ๋ฐ๋ฉด ์ ์์ค์ ํ๋์์ํฌ๋ ๋ณด๋ค ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ง๋ง UIKit, AppKit ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ์ง์ ๊ตฌํํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค
-
๊ฐ์ด๋ฐ ๋ณด์ด๋ OpenGL์ iOS ๋๋ฐ์ด์ค์ Graphics Hardware์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์ง์ ์ ์ธ ์ ๊ทผ์ ์ง์ํ๋ค. ํ์ง๋ง ๊ทธ๋งํผ ๊ฐ๋จํ ์์ ์กฐ์ฐจ ๊ต์ฅํ ๋ง์ ์์ ์ฝ๋๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ์ด ๋จ์ด์ง๋ค.
-
๋นํจ์จ์ ์ธ OpenGL์ ๋ณด์ํ๊ธฐ ์ํด Core Graphics์ Core Animation์ด ์กด์ฌํ๋ค.
-
CALayer๋ Core Animation์ด ์ ๊ณตํ๋ ์์ ์ค ํ๋์ด๋ค.
CALayer๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ๋ณด๋ค ํจ์จ์ ์ผ๋ก OpenGL์ ์ฅ์ ์ ๊ฐ์ ธ๊ฐ ์ ์์
Layer๊ฐ์ฒด๋ UIView์ ์ํ๋ฉฐ, UIView๋ฅผ ์ง์ํด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. UIView๋ 1.ํ๋ฉดํ์ 2.ํฐ์น ์ด๋ฒคํธ ์ฒ๋ฆฌ 3.subView ๋ฑ์ ์์ ์ ํ๋๋ฐ ์ด๋, 1.ํ๋ฉดํ์(์ค์ ๋ก ๋ทฐ ์์ ์ปจํ ์ธ ๋ ์ ๋๋ฉ์ด์ ์ ๊ทธ๋ฆฌ๋ ํ์)๋ ์์ ์ด ์ง์ ํํ์ง ์๊ณ UIKit์ ์ํด Core Animation์๊ฒ ์์ํ๊ฒ ๋ฉ๋๋ค. Core Animation์ด ์ ๊ณตํ๋ ์์ ์ค์ ํ๋์ธ CALayer๊ฐ ๋ฐ๋ก ๊ทธ ์ญํ ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
CALayer์ ์์ฑ์ผ๋ก๋ ๋ํ์ ์ผ๋ก cornerRadius, shadow, border, frame, bounds ๋ฑ์ด ์์ต๋๋ค.
cornerRadius๋ shadow ๊ด๋ จ ์ฝ๋์์ ๋ง์ด ๋ณด์ด๋ clipsToBounds, masksToBounds๋ ๊ฐ์ ์ญํ ์ ํ์ง๋ง ๊ฐ๊ฐ UIView์ CALayer์ ์ํ ํ๋กํผํฐ๋ผ๋ ์ ์ด ๋ค๋ฆ ๋๋ค.
๋์ SubView๋ SubLayer์ ๋ด์ฉ(๊ธ์จ ๋ฑ)์ด ๋ฃจํธ Layer์ ๊ฒฝ๊ณ๋ฅผ ๋ฌด์ํ๊ณ ์์ ์ ๋ณด์ฌ์ฃผ๋๋ ๊ฒฝ๊ณ์ ๋ง์ถ์ด ์๋ฆฌ๋๋๋ฅผ ์ค์ ํด์ฃผ๋ Boolํ์ ์ ๋ฉ์๋์ ๋๋ค.