๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

IOS17

Pinch Gesture ํ•€์น˜ ์ œ์Šค์ฒ˜(Pinch Gesture) ๋‘ ์†๊ฐ€๋ฝ์œผ๋กœ ํ™”๋ฉด์„ ํ™•๋Œ€ / ์ถ•์†Œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ ํ™”๋ฉด ํ™•๋Œ€ / ์ถ•์†Œ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ๋ชจ๋“  ์•ฑ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ๋ฐ ์•„์›ƒ๋ › ๋ณ€์ˆ˜ ์ถ”๊ฐ€ viewController์— image View๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ์„ค์ •ํ•œ๋‹ค. ์ดํ›„ image View์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ํ•€์น˜ ์ œ์Šค์ฒ˜ ๊ตฌํ˜„ UIPinchGestureRecognizer ํด๋ž˜์Šค ์ƒ์ˆ˜ pinch๋ฅผ ์„ ์–ธํ•œ๋‹ค. ํ•€์น˜ ์ œ์Šค์ฒ˜๊ฐ€ ์ธ์‹๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๋ฉ”์„œ๋“œ๋Š” doPinch๋กœ ์„ค์ •ํ•œ๋‹ค. view ๊ฐ์ฒด์˜ addGestureRecognizer ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํ•€์น˜ ์ œ์Šค์ฒ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. doPinch ๋ฉ”์„œ๋“œ์—์„œ ํ•€์น˜ ์ œ์Šค์ฒ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด image View๋ฅผ ํ•€์น˜์˜ scale์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•œ๋‹ค. .. 2023. 1. 13.
Swipe Gesture ์Šค์™€์ดํ”„ ์ œ์Šค์ฒ˜(Swipe Gesture) ํ™”๋ฉด์—์„œ ์ˆ˜ํ‰ ๋˜๋Š” ์ˆ˜์ง swipe๋™์ž‘์„ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ํƒ์ƒ‰(navigation) swipe: ์†๊ฐ€๋ฝ์œผ๋กœ ํ™”๋ฉด์„ ์ƒํ•˜์ขŒ์šฐ๋กœ ๋ฏธ๋Š” ๋™์ž‘ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ๋ฐ ์•„์›ƒ๋ › ๋ณ€์ˆ˜ ์ถ”๊ฐ€ ์ƒํ•˜์ขŒ์šฐ ๋„ค ๊ฐ€์ง€ ๋ฐฉํ–ฅ์œผ๋กœ swipe gesture๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด 4๊ฐœ์˜ image View๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 4๊ฐœ์˜ image View์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ๋ณ€์ˆ˜ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐ ์ด๋ฏธ์ง€ ์„ค์ • ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ณด์ผ ์ด๋ฏธ์ง€๋“ค์˜ ์ด๋ฆ„์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด ๋‘”๋‹ค. viewDidLoad()์—์„œ ๋ทฐ๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ ๋ณด์ผ ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ์„ค์ •ํ•œ๋‹ค. 3. ํ•œ ์† Swipe Gesture ์„ค์ • setSwipeGesture() ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด viewDidLoad()์—์„œ ํ˜ธ์ถœํ•œ๋‹ค. ์ƒํ•˜์ขŒ์šฐ .. 2023. 1. 12.
Tap Touch Tap, Touch ํ„ฐ์น˜๋Š” ํ™”๋ฉด์„ ๋งŒ์ง€๋Š” ๋ชจ๋“  ํ–‰์œ„, ํƒญ์€ ํ™”๋ฉด์„ ํ†กํ†ก ๋‘๋“œ๋ฆฌ๋Š” ํ–‰์œ„ touch๋Š” ๋„ค ๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง began์€ ํ„ฐ์น˜๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ, moved๋Š” ๋“œ๋ž˜๊ทธํ•ด์„œ ์›€์ง์ผ ๋•Œ, ended๋Š” ์†์„ ๋—„ ๋•Œ, canceled๋Š” ํ„ฐ์น˜๊ฐ€ ์ทจ์†Œ๋  ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ tap์€ toches ์„ธํŠธ ์•ˆ์— ํฌํ•จ๋จ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ผ label๊ณผ ํƒญ๊ณผ ํ„ฐ์น˜ ํšŸ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ label ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ์•„์›ƒ๋ › ๋ณ€์ˆ˜ ์ถ”๊ฐ€ 3๊ฐœ์˜ label์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 3. ํƒญ, ํ„ฐ์น˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ฐ ํ„ฐ์น˜ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. ๊ฐ ํ•จ์ˆ˜์—์„œ ํ˜„์žฌ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•œ ํ›„, ํ„ฐ์น˜์˜ ๊ฐœ์ˆ˜์™€ ํƒญ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 4. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™•์ธ ํ™”๋ฉด์„ ํƒญ ํ•˜๋ฉด tapCount๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉฐ, touchC.. 2023. 1. 11.
Core Graphics ์ฝ”์–ด ๊ทธ๋ž˜ํ”ฝ์Šค (Core Graphics) ์•„์ดํฐ๊ณผ ์•„์ดํŒจ๋“œ์—์„œ 2์ฐจ์› ๊ทธ๋ž˜ํ‚ฅ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์• ํ”Œ์ด ์ œ๊ณตํ•˜๋Š” '์ฟผ์ธ  (Quarts)'๋ผ๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•ˆ์— ํฌํ•จ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ๊ทธ๋ฆผ์„ ํ‘œํ˜„ํ•  image View์™€, ์–ด๋–ค ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด์ง€ ์„ ํƒํ•˜๋Š” ๋ฒ„ํŠผ 4๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ์•„์›ƒ๋ › ๋ณ€์ˆ˜, ์•ก์…˜ ํ•จ์ˆ˜ ์ถ”๊ฐ€ image View์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜์™€, ๋ฒ„ํŠผ 4๊ฐœ์— ๋Œ€ํ•œ ์•ก์…˜ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 3. ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์„ ์„ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค. ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ์œ„ํ•œ ์ฝ˜ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ์ƒ์„ฑ๋œ ์ฝ˜ํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ํš๋“ํ•œ๋‹ค. ์„ ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ๊ตต๊ธฐ์™€ ์ƒ‰์ƒ์„ ์„ ํƒํ•œ๋‹ค. ์ปค์„œ๋ฅผ (70, 50)์œผ๋กœ ์ด๋™ ํ›„, ์ปค์„œ ๋ถ€ํ„ฐ (270, 250)๊นŒ์ง€ ์„ ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ƒ์„ฑํ•œ ์„ ์„ ์ฝ˜ํ…์ŠคํŠธ์— .. 2023. 1. 10.
์นด๋ฉ”๋ผ์™€ ํฌํ†  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•ฑ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ViewController์— ์ด๋ฏธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ผ ImageView์™€ "์‚ฌ์ง„ ์ดฌ์˜ํ•˜๊ธฐ", "์‚ฌ์ง„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ" Button 2๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•œ๋‹ค. 2. ์•„์›ƒ๋ › ๋ณ€์ˆ˜, ์•ก์…˜ํ•จ์ˆ˜ ์ถ”๊ฐ€ ImageView์— ๋Œ€ํ•œ ์•„์›ƒ๋ › ๋ณ€์ˆ˜์™€ ๋‘ ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ์•ก์…˜ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 3. ํ—ค๋” ํŒŒ์ผ๊ณผ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ํ”„๋กœํ† ์ฝœ ์ถ”๊ฐ€, ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฏธ๋””์–ด ํƒ€์ž…์ด ์ •์˜๋œ ํ—ค๋”ํŒŒ์ผ "MobileCoreServices"์™€ Image Picker Controller๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ํ”„๋กœํ† ์ฝœ์„ ์„ ์–ธํ•œ๋‹ค. UIImagePickerController์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์ธ imgPicker๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 4. ๊ธฐ๋Šฅ ์ฝ”๋“œ ๊ตฌํ˜„ ์‚ฌ์ง„์ดฌ์˜ ๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜๋ฉด, imagePicker์˜ ์†Œ์Šค ํƒ€์ž…์€ camera, ๋ฏธ๋””์–ด ํƒ€์ž…์€ publi.. 2023. 1. 6.
Movie Player AVPlayer AVPlayer: player ์ž‘์—…์— ๊ด€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ํŒŒ์ผ์„ ์žฌ์ƒํ•  ๋•Œ ์‚ฌ์šฉ AVPlayer ๊ฐ์ฒด๋Š” AVAsset์˜ ์ „๋ฐ˜์ ์ธ *playback์„ ์กฐ์ ˆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ playback: ๋…น์Œ, ๋…นํ™”, ์žฌ์ƒ AVPlayer๊ฐ์ฒด๊ฐ€ AVPlayerItem์„ ์ด์šฉํ•˜๊ณ , AVPlayerItem์ด AVAsset์„ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ AVPlayer๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋งŒ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์žฌ์ƒํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” AVQueuePlayer ํด๋ž˜์Šค ์‚ฌ์šฉ 1. ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ ์•ฑ ๋‚ด๋ถ€ ๋น„๋””์˜ค ์žฌ์ƒ๊ณผ ์™ธ๋ถ€ ๋งํฌ ๋น„๋””์˜ค ์žฌ์ƒ 2๊ฐ€์ง€ ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ label๊ณผ button์„ ์ถ”๊ฐ€ํ•œ๋‹ค. 2. ์•ก์…˜ํ•จ์ˆ˜ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋‘ ๊ฐœ์˜ ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ์•ก์…˜ํ•จ์ˆ˜.. 2023. 1. 4.
๋ฐ˜์‘ํ˜•