728x90
๋ฐ˜์‘ํ˜•
[SwiftUI] ZStack vs overlay modifier

ZStack ์€ ์ž์‹ ์˜ children๋ฅผ z์ถ•์œผ๋กœ overlayํ•˜๋Š” View์ด๊ณ  overlay ๋Š” ํ˜„์žฌ ๋ทฐ์— secondary view๋ฅผ overlayํ•˜๋Š” modifier ์ž…๋‹ˆ๋‹ค. (overlay๋ฅผ ์ค‘์ฒฉ์œผ๋กœ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค) ์• ํ”Œ๋ฌธ์„œ์— ์žˆ๋Š” overlay ์˜ˆ์ œ์˜ ๊ฒฐ๊ณผ๋ฅผ zstack์œผ๋กœ๋„ ๋˜‘๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ณด๋ฉด ๋˜‘๊ฐ™์•„๋ณด์ด์ง€๋งŒ ์‚ฌ์‹ค ๋‘ ๊ฐœ๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ZStack์˜ ์ž์‹๋ทฐ๋“ค์€ ์„œ๋กœ์— ๋Œ€ํ•ด independent ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ZStack์— frame์„ ๋”ฐ๋กœ ์ฃผ์ง€ ์•Š์€ ์ด์ƒ ๊ฐ€์žฅ ํฐ ์ž์‹๋ทฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ZStack์˜ fit์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด overlay์˜ ๊ฒฝ์šฐ overlay๋˜๋Š” view๋Š” parent view์— ์ข…์†๋ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ overlaid view๋Š” parent ..

๐Ÿ/SwiftUI + Combine 2021. 3. 26. 20:47
[SwiftUI] Button์˜ Tappable ์˜์—ญ

Button์€ ๋”ฑ ํ…์ŠคํŠธ์˜์—ญ๋งŒ Tappable ํ•˜๋‹ค. (๋…ธ๋ž€์ƒ‰์€ ํด๋ฆญ์˜์—ญ์ด ์•„๋‹˜) ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์–ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋”ฑ ์ด๋ฏธ์ง€ ์˜์—ญ๋งŒ Tappableํ•˜๋‹ค. (๋…ธ๋ž€์ƒ‰์€ ํด๋ฆญ์˜์—ญ์ด ์•„๋‹˜) UIKit๊ณผ ๋‹ฌ๋ฆฌ SwiftUI์—์„œ๋Š” ๋ฒ„ํŠผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ Label์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๊ผญ ์ค˜์•ผํ•œ๋‹ค.๊ทธ๋ž˜์„œ Label ์˜์—ญ๋งŒ tappableํ•˜๊ฒŒ ๋””์ž์ธ๋˜์—ˆ๋‚˜๋ณด๋‹ค. (์ถ”์ธก) ๊ทธ๋Ÿฌ๋ฉด Label๋ง๊ณ  ๋‹ค๋ฅธ ์˜์—ญ๋„ Tappableํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?! [1] Button๋ง๊ณ  Label์— frame์„ ์ฃผ๊ธฐ Label์˜์—ญ๋งŒ Tappableํ•˜๋‹ˆ๊นŒ Label์˜์—ญ์„ ๋ฒ„ํŠผ์‚ฌ์ด์ฆˆ๋กœ ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. [2] ๋ฒ„ํŠผ ์•„๋‹Œ ๋ทฐ๋ฅผ ๋งŒ๋“  ํ›„, onTapGesture ์‚ฌ์šฉSwiftUI์˜ ๋ฒ„ํŠผ์ด Label ์˜์—ญ๋งŒ Tappableํ•˜๊ฒŒ ๋””์ž์ธ ๋˜์—ˆ๋‹ค..

๐Ÿ/SwiftUI + Combine 2020. 9. 6. 02:56
[SwiftUI] modifier์˜ ์ˆœ์„œ๋ฅผ ๊ณ ๋ คํ•˜์ž (ํŠนํžˆ frame)

์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„์˜ modifier ์ˆœ์„œ๋Š” background -> frame ์ž…๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ ์‚ฌ์ง„์˜ modifier ์ˆœ์„œ๋Š” frame -> background ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ณผ ์ˆ˜์žˆ์ฃ ?! ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”-?! SwiftUI์—์„œ๋Š” View์— modifier๋ฅผ ์ ์šฉํ• ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด view๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž„์„ ๊ธฐ์–ตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (๋‹จ์ง€ ์กด์žฌํ•˜๋Š” view์˜ ์†์„ฑ์„ ๋ฐ”๊พธ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด view๋ฅผ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ-!) ๊ทธ๋ž˜์„œ ์ฒซ๋ฒˆ์งธ ์‚ฌ์ง„์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์œ ๋กœ ์ €๋ ‡๊ฒŒ ๊ทธ๋ ค์กŒ๊ณ  ๋‘๋ฒˆ์งธ ์‚ฌ์ง„์€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ด์œ ๋กœ ์ €๋ ‡๊ฒŒ ๊ทธ๋ ค์กŒ์Šต๋‹ˆ๋‹ค. ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๋„๋ก frame modifier๋ฅผ ์ฒซ๋ฒˆ์งธ๋กœ ์œ„์น˜์‹œ์ผœ์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค...! ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœํ•˜๋ฉด์„œ frame๋ง๊ณ ๋„ ์ˆœ์„œ๋ฐ”๊พธ๋‹ˆ๊นŒ ์›ํ•˜๋Š”๋Œ€๋กœ ๋™์ž‘ํ–ˆ๋˜ ๊ฒƒ์ด ๋˜ ์žˆ์—ˆ๋Š”๋ฐ (์ž˜ ๊ธฐ..

๐Ÿ/SwiftUI + Combine 2020. 9. 6. 02:01
[SwiftUI] Multi-platform App ๋งŒ๋“ค๊ธฐ - ํ”„๋กœ์ ํŠธ ์„ธํŒ…

์• ํ”Œ์—์„œ ์˜ˆ์ œ๋กœ ๋ณด์—ฌ์ค€ Fruta ์•ฑ ์ฒ˜๋Ÿผ macOS, iOS, and iPadOS์—์„œ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๋‹ค ๋™์ž‘ํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘ (iOS 14, XCode 12์—์„œ๋ถ€ํ„ฐ, SwiftUI๋ฅผ ์ด์šฉํ•ด์„œ) [1] Multi-platform ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ Xcode 12 ๋ฒ ํƒ€๋ฒ„์ „์„ ์—ด์–ด์ฃผ์„ธ์š” ์ƒˆ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด Multiplatform์ด๋ผ๋Š” ํƒญ์ด ์ƒ๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ App์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์ฃผ๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด Shared, iOS, macOS ๋ผ๋Š” ๊ทธ๋ฃน์ด ์ƒ๊ฒจ์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” test๋„ ์ฒดํฌํ•ด์„œ ์ €๋ ‡๊ฒŒ Tests iOS, Tests macOS๋ผ๋Š” ๊ทธ๋ฃน๋„ ์ƒ๊ฒผ์–ด์š” ๊ทธ๋ฆฌ๊ณ  iOS ๋˜๋Š” macOS๋กœ ๋Œ๋ ค๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด์žˆ์–ด์š” (mac OS๋Š” ๋น…์„œ๋กœ ์˜ฌ๋ ค์•ผ์ง€ ๋Œ๋ฆฌ..

๐Ÿ/SwiftUI + Combine 2020. 8. 6. 13:31
๊ณต์ง€์‚ฌํ•ญ
Total
330,662
Today
311
Yesterday
358
๋งํฌ
«   2021/09   »
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
๊ธ€ ๋ณด๊ด€ํ•จ