๋์์ธ ๊ฐ์ด๋๋ฅผ ์ฝ๋ค๋ณด๋ฉด, Asset์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ด ๊ฒฝ์ฐ ๊ทธ๋ฅ View๋ฅผ ๋ง๋ค๊ณ Imageํ ํด์ ์ฌ์ฉํ๋ฉด ์ข๊ฒ ๋๋ฐ.. ์ ์ฐพ์์๋ค!!
Answer
UIGraphicsImageRenderer
๊ทธ๋ฐ๋ฐ ์ด ์น๊ตฌ๊ฐ ๋ญํ๋ ๋ ์์ธ์ง ๋ฌธ๋ ๊ถ๊ธํด์ก๋ค.
Core Graphics ์ง์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ทธ๋ํฝ ๋ ๋๋ฌ
UIKit ๊ธฐ๋ฐ ์ฑ์ ์ํด Core Graphics์ ๋ํ ๊ฒ์ดํธ์จ์ด ์ญํ ์ ํ๋ค. ์ฆ, renderer ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๊ฐ์ฒด ๋ด์ rendering context๋ฅผ ์์ฑํ๋ฉด, Core Graphics์์ ํด๋น ์์ ์ ์ฒ๋ฆฌํ์ฌ ๋ค์ UIKit์ ํด๋นํ๋ ๋ ์์ผ๋ก ๋ฐํํด์ค๋ค. ๊ณต์ ๋ฌธ์์ ์๋ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด, ์ด๋ค ์น๊ตฌ์ธ์ง ๋๋ฒ์ ์ ์ ์๋ค.
- ํฌ๊ธฐ๊ฐ 200x200์ธ UIGraphicsImageRenderer ๊ฐ์ฒด renderer๋ฅผ ๋ง๋ ๋ค.
- renderer๋ฅผ ๋ง๋ค์๋ค๊ณ ๋ ๋๋ง์ด ์คํ๋์ง๋ ์๋๋ค. renderer์
image()
๋ฉ์๋์์ ์คํ๋๋ค.
- renderer๋ฅผ ๋ง๋ค์๋ค๊ณ ๋ ๋๋ง์ด ์คํ๋์ง๋ ์๋๋ค. renderer์
renderer.image
์ closure๋ฅผ ์์ฑํ๋ค.func image(actions: (UIGraphicsImageRendererContext) -> Void) -> UIImage
- ํด๋ก์ ๋ง์ ์ ๋ ฅ ์ธ์๋ก ๋ฐ๊ณ , ๊ฒฐ๊ณผ๋ก UIImage๋ฅผ ์ค๋ค.
- closure ๋ด๋ถ์๋
UIGraphicsImageRenderContext
๊ฐ ์๋๋ฐ, ์ด๋ ์์UIGraphicsRendeerContext
๋ฅผ ์์ํ๊ณ ์์ด, ๊ทธ๋ฆฌ๊ธฐ์ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์๋cgContext
๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋์ ์ด ๋ ์์ ์ฌ์ฉํด์ ๊ทธ๋ ค์ฃผ๋ฉด ๋๋ค. UIGraphicsImageRenderContext
์๋ ๊ธฐ๋ณธ์ ์ธ ๊ทธ๋ฆฌ๊ธฐ ๋ฉ์๋๋ ์์ง๋ง, ๊ณ ๊ธ ๋์์ ํ๊ณ ์ถ๋ค๋ฉดUIGraphicsRendeerContext.CGContext
๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์ด ์์ ์ ๋ง์น๋ฉด ์๋์ ๊ฐ์ ๋ํ์ด ๊ทธ๋ ค์ง๋ค.
์์ฝ
UIGraphicsImageRendererContext
๋ Core Graphic ๋ ๋๋ง ๊ธฐ๋ฅ์ ์ง์ ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋cgContext
๋ฅผ ๊ฐ์ง๊ณ ์๋ค.- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ UIKit์์ Core Graphic์ ์ ๊ทผํ์ฌ ์ด๋ฏธ์ง ๋ ๋๋ง์ ์ํํ ์ ์๋ค.
- ์ด๋ฐ ์๋ฏธ์์ ์ ํ์ ์ ์๋ ์ด๋์ ๋ ์ดํด๊ฐ ๋๋ ๋ถ๋ถ์ด๋ค.
๋!