Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป
๋ฐ˜์‘ํ˜•

potato's iOS Story/๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋งŒ๋‚œ ์นœ๊ตฌ๋“ค 25

[SwiftUI] Button tappable area (๊ธ€์ž๋ฅผ ํด๋ฆญํ•ด์•ผ๋งŒ ๋™์ž‘ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž) - contentShape()

Gominsee ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ์˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด์„œ ํ™”๋ฉด์„ ์ „ํ™˜ํ•˜๋Š” ์ˆ˜์ •์„ ๋‹ด๋‹นํ–ˆ๋‹ค. ์„ค์ • ํŽ˜์ด์ง€์—์„œ '๋กœ๊ทธ์•„์›ƒ'๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋กœ๊ทธ์•„์›ƒ์ด ๋˜์–ด์•ผํ•˜๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ์ด "๋กœ๊ทธ์•„์›ƒ"์ด๋ผ๋Š” ๊ธ€์”จ๋ฅผ ํด๋ฆญํ•ด์•ผ ๋กœ๊ทธ์•„์›ƒ์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ ์œผ๋กœ ๋ดค์„๋•Œ, ์ €๋ ‡๊ฒŒ ์˜์—ญ์ด ๋‚˜๋ˆ ์ ธ์žˆ์œผ๋ฉด '๋กœ๊ทธ์•„์›ƒ'์ด ์žˆ๋Š” row ์ „์ฒด ์–ด๋””๋“  ํด๋ฆญํ•ด์•ผ ๋กœ๊ทธ์•„์›ƒ์ด ๋˜์–ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋นจ๊ฐ„์ƒ‰ ๋ถ€๋ถ„ ์ „์ฒด๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ง์ด๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Button์˜ ํ„ฐ์น˜์˜์—ญ์œผ๋กœ ์ˆ˜์ •์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•œ ๊ฒฝํ—˜์ด ์žˆ์ง€๋งŒ, ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋‘์ง€ ์•Š์•„์„œ ์ด๋ฒˆ์— ๋˜ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๊ณ  ์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ๋ผ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ‘‰ 1. View ํƒ€์ž…์ธ Text + onTap..

[Swift] ์—๋Ÿฌ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๋Š” ํƒ€์ž…์บ์ŠคํŒ…(is, as) - Cannot convert value of type 'Any' to expected argument type 'Int'

์˜ค๋Š˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฐœ๊ฒฌํ•œ ์—๋Ÿฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•˜๋ ค๊ณ ํ•œ๋‹ค. ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ๋Š” ๋ฐ”๋กœ ์ด๊ฒƒ. โš ๏ธ ์—๋Ÿฌ ์‚ฌํ•ญ Cannot convert value of type 'Any' to expected argument type 'Int'. Any๋ฅผ Int ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค?? ๊ทธ๋‹ˆ๊นŒ ์ด ์—๋Ÿฌ๋Š” ๋Œ€๋ถ€๋ถ„ type ์ด ๋‹ค๋ฅผ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋กœ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ์ง€๊ธˆ ์œ„ ์ฝ”๋“œ์—์„œ next๋กœ ์ง€์ •๋œ ๊ฐ’์ด Int ๊ฐ€ ์•„๋‹ˆ๋ผ Any ํƒ€์ž… ์ด๋ผ๋Š” ๋œป์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ graph ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋Š” Int ์ธ๋ฐ, ์™œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ? ๋ฐ”๋กœ๋ฐ”๋กœ! ์•„๋ž˜์ฒ˜๋Ÿผ, ์ดˆ๋ฐ˜์— ๋‚ด๊ฐ€ 2์ฐจ์› ๋ฐฐ์—ด์ธ graph๋ฅผ ์ •์˜ํ•  ๋•Œ, array์•ˆ์— [] ๋นˆ๋ฐฐ์—ด์„ ํƒ€์ž… ์ง€์ • ์—†์ด ๋„ฃ์–ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Any๋กœ ํƒ€์ž…์ด ์„ค์ • ๋œ ๊ฒƒ์ด๋‹ค. var ..

[SwiftUI] NavigationView ์ด๋™ํ•˜๋‹ค๊ฐ€ Root View๋กœ ๋Œ์•„์˜ค๊ธฐ (์ฒซํ™”๋ฉด์œผ๋กœ ๋Œ์•„์˜ค๋Š” ๋ฐฉ๋ฒ•)

์•ž์—์„œ ์ž‘์„ฑํ–ˆ๋˜ ๊ธ€์—์„œ, SecondPage์—์„œ NavigationBarHidden(true)์ฝ”๋“œ๋ฅผ ์—†์• ๊ณ , ๋นŒ๋“œ์‹œ์ผœ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋  ๊ฒƒ์ด๋‹ค. [SwiftUI] Navigation bar๊ฐ€ ๊ณ„์† ์Œ“์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ž SwiftUI๋ฅผ ํ™œ์šฉํ•ด์„œ ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ์€๊ทผํžˆ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์› ๋˜ ์ด์Šˆ๊ฐ€ ๋ฐ”๋กœ ํ•ด๋‹น ์ด์Šˆ์˜€๋‹ค. Navigation bar๊ฐ€ ๊ณ„์† ์Œ“์ธ๋‹ค..? ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์—†๊ณ , ์ฒ˜์Œ swfit๋ฅผ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์œผ didu-story.tistory.com ์—ฌ๊ธฐ ๋งˆ์ง€๋ง‰ ํ™”๋ฉด์—์„œ ๋’ค๋กœ๊ฐ€๊ธฐ ๋‘๋ฒˆ์„ ๋ˆ„๋ฅด๋ฉด, MainPage๊ฐ€ ๋“ฑ์žฅํ•˜์ง€๋งŒ,,, ๋งŒ์•ฝ ๋ฐ”๋กœ ํ™”๋ฉด์œผ๋กœ ๊ฐ€๊ณ ์‹ถ๋‹ค๋ฉด? ์•„๋ž˜์™€ ๊ฐ™์ด ๋งˆ์ง€๋ง‰ ํ™”๋ฉด์— NavigationLink๋ฅผ ํ†ตํ•ด ์ฒซํ™”๋ฉด์œผ๋กœ ๊ฐ€๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. // ThirdPage ์ฝ”..

[SwiftUI] Navigation bar๊ฐ€ ๊ณ„์† ์Œ“์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ž

SwiftUI๋ฅผ ํ™œ์šฉํ•ด์„œ ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ์€๊ทผํžˆ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์–ด๋ ค์› ๋˜ ์ด์Šˆ๊ฐ€ ๋ฐ”๋กœ ํ•ด๋‹น ์ด์Šˆ์˜€๋‹ค. Navigation bar๊ฐ€ ๊ณ„์† ์Œ“์ธ๋‹ค..? ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์—†๊ณ , ์ฒ˜์Œ swfit๋ฅผ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์œผ๋กœ์จ ํ•ด๊ฒฐํ•˜๊ธฐ ์กฐ๊ธˆ ๋ฒ„๊ฑฐ์› ๋˜! ๊ตฌ๊ธ€๋ง๋„ ํž˜๋“ค์—ˆ๋˜ ๋ฌธ์ œ. โš ๏ธ ์ด์Šˆ์‚ฌํ•ญ ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ, navigationLink ์œผ๋กœ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด์„œ View๊ฐ„์˜ ์ด๋™์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๋‘๋ฒˆ์งธ๋Š” ๊ดœ์ฐฎ์ง€๋งŒ, ์„ธ๋ฒˆ์งธ๋ถ€ํ„ฐ navigationbar๊ฐ€ ์Œ“์ด๊ฒŒ ๋œ๋‹ค. NavigationBarHidden(true) ์„ ํ•˜๋ฉด ๋ ์ค„ ์•Œ์•˜์ง€๋งŒ, ๋˜์ง€ ์•Š๋Š”๋‹ค. 1. ContentView - ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ํŽ˜์ด์ง€ ์ฝ”๋“œ import SwiftUI struct ContentView: View { var body: some View {..

[Swift] Content Priority Ambiguity ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ (hugging priority, compression resistance priority ๋ž€?)

Swift์—์„œ AutoLayout์„ ํ™œ์šฉํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋‹ค๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ margin์„ ์„ค์ •ํ–ˆ์„ ๋ถ„์ธ๋ฐ ์™œ.. ๋„๋Œ€์ฒด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€? label๊ณผ label ์‚ฌ์ด์— margin์„ 20์œผ๋กœ ์„ค์ •ํ–ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๋นจ๊ฐ„์ค„์ด ๋œจ๋ฉด์„œ ์ „ํ˜€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜๋‹ค. ์™œ ์•ˆ์›€์ง์—ฌ?? ์ด๋Š” ๋ฐ”๋กœ error๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค. ์™ผ์ชฝ ๋„ค๋น„๊ฒŒ์ดํ„ฐ(?)์— ๋ณด๋ฉด, ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์ž‘์€ ๋นจ๊ฐ„ ํ™”์‚ดํ‘œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ํด๋ฆญํ•ด๋ณด์ž. ๋ฌด์Šจ์—๋Ÿฌ์ผ๊นŒ? ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. "Content Priority Ambiguity", "Set vertical hugging priority"๋ผ๊ณ  ๋‚˜์˜จ๋‹ค. ๋„๋Œ€์ฒด ๋ฌด์Šจ๋ง์ผ๊นŒ. ์ด๋Š” ๋ฐ”๋กœ content hugging priority๋ฅผ ์„ค์ •ํ•˜๋ผ๋Š” ๋œป์ด๋‹ค. ์ด๋Š” side i..

๋ฐ˜์‘ํ˜•