๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ iOS

Core Graphics

by hyebin (Helia) 2023. 1. 10.
๋ฐ˜์‘ํ˜•

์ฝ”์–ด ๊ทธ๋ž˜ํ”ฝ์Šค (Core Graphics)

  • ์•„์ดํฐ๊ณผ ์•„์ดํŒจ๋“œ์—์„œ 2์ฐจ์› ๊ทธ๋ž˜ํ‚ฅ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์• ํ”Œ์ด ์ œ๊ณตํ•˜๋Š” '์ฟผ์ธ  (Quarts)'๋ผ๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•ˆ์— ํฌํ•จ

 

1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ

๊ทธ๋ฆผ์„ ํ‘œํ˜„ํ•  image View์™€, ์–ด๋–ค ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด์ง€ ์„ ํƒํ•˜๋Š” ๋ฒ„ํŠผ 4๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

2. ์•„์›ƒ๋ › ๋ณ€์ˆ˜, ์•ก์…˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€

image View์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜์™€, ๋ฒ„ํŠผ 4๊ฐœ์— ๋Œ€ํ•œ ์•ก์…˜ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

3. ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

์„ ์„ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ์œ„ํ•œ ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ํš๋“ํ•œ๋‹ค.

์„ ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ๊ตต๊ธฐ์™€ ์ƒ‰์ƒ์„ ์„ ํƒํ•œ๋‹ค.

์ปค์„œ๋ฅผ (70, 50)์œผ๋กœ ์ด๋™ ํ›„, ์ปค์„œ ๋ถ€ํ„ฐ (270, 250)๊นŒ์ง€ ์„ ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ƒ์„ฑํ•œ ์„ ์„ ์ฝ˜ํ…์ŠคํŠธ์— ๊ทธ๋ ค์ค€๋‹ค.

์ด๋ฏธ์ง€ ๋ทฐ์— ํ˜„์žฌ ์ฝ˜ํ…์ŠคํŠธ์— ๊ทธ๋ ค์ง„ ์ด๋ฏธ์ง€๋ฅผ ํ• ๋‹นํ•œ ํ›„, ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค. 

 

์‚ฌ๊ฐํ˜•๊ณผ ์› ๊ทธ๋ฆฌ๊ธฐ๋Š” ์„  ๊ทธ๋ฆฌ๊ธฐ์™€ ๋Œ€๋ถ€๋ถ„ ๋™์ผํ•˜๋‹ค.

์‚ฌ๊ฐํ˜•์„ ๊ทธ๋ฆด๋•Œ๋Š”, addRect ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์œ„์น˜์™€ ๊ฐ€๋กœ ์„ธ๋กœ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.

์›์„ ๊ทธ๋ฆด๋•Œ๋Š”, addEllipse ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์œ„์น˜์™€ ๊ฐ€๋กœ ์„ธ๋กœ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค.

ํ˜ธ ๊ทธ๋ฆฌ๊ธฐ๋Š” ์ปค์„œ๋ฅผ ์ด๋™ ํ›„, addArc ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด 2๊ฐœ์˜ ์ ‘์ ์˜ ์œ„์น˜์™€ ๋ฐ˜์ง€๋ฆ„์„ ์„ค์ •ํ•œ๋‹ค.

์ดํ›„ addLine ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์„ ์„ ๊ทธ๋ ค์ค€๋‹ค.

 

๋„ํ˜•์— ์ƒ‰์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” setFillColor ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋„ํ˜•์„ ์ฑ„์šธ ์ƒ‰์„ ์„ค์ •ํ•œ ํ›„, fill ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋„ํ˜•์— ์ƒ‰์„ ์ฑ„์šด๋‹ค.

 

4. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™•์ธ

๋ฐ˜์‘ํ˜•

'๐ŸŽ iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Swipe Gesture  (0) 2023.01.12
Tap Touch  (0) 2023.01.11
์นด๋ฉ”๋ผ์™€ ํฌํ†  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•ฑ  (0) 2023.01.06
Movie Player  (0) 2023.01.04
AVAudioPlayer  (0) 2023.01.03