๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ViewBuilder ViewBuilder - ์ •์˜ : ํด๋กœ์ €๋กœ ๋‹ค์ˆ˜์˜ ์ž์‹ ๋ทฐ๋“ค์„ ๋งŒ๋“ค์ˆ˜ ์žˆ๊ฒŒํ•ด์ฃผ๋Š” parameter attribute - buildBlock ์ด๋ผ๋Š” ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ž์‹ ๋ทฐ๋กœ ์ž‘์„ฑ๋œ ๋‹จ์ผ ๋ทฐ๋ฅผ ์ „๋‹ฌ - 2๊ฐœ ์ด์ƒ์˜ ๋ทฐ์ผ๋•Œ๋Š” TupleView ๋ผ๋Š” ํƒ€์ž…์„ ๋ฆฌํ„ด - body ํ”„๋กœํผํ‹ฐ๋Š” ์•”์‹œ์ ์œผ๋กœ @ViewBuilder๋กœ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— func contextMenu( menuItems: () -> MenuItems ) -> some View ViewBuilder๋ฅผ ๋ถ™์—ฌ์คŒ์œผ๋กœ์จ func contextMenu( @ViewBuilder menuItems: () -> MenuItems ) -> some View ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์ž์‹๋ทฐ๋“ค์„ ํด๋กœ์ € ๋‚ด๋ถ€์—์„œ ์ƒ์„ฑํ• ์ˆ˜ ์žˆ๋‹ค myView.c.. 2022. 11. 10.
@State, @Binding , @ObservedObject, @Published, @StateObject, @EnvironmentObject @State SwiftUI๋Š” state๋กœ ์„ ์–ธํ•œ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ด€๋ฆฌ @State๋ฅผ ์•ž์— ์ถ”๊ฐ€ํ•˜๋ฉด SwiftUI๊ฐ€ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ observeํ•˜๊ณ  ํ•ด๋‹น state๋ฅผ ์‚ฌ์šฉํ•˜๋Š” view๋ถ€๋ถ„์„ ์—…๋ฐ์ดํŠธ view ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ํ•ด๋‹น view์˜ state ํ”„๋กœํผํ‹ฐ๋Š” ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” swiftui์™€ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ• ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ํ•ญ์ƒ stateํ”„๋กœํผํ‹ฐ๋ฅผ private์œผ๋กœ ์„ ์–ธ @Binding // ๋ถ€๋ชจ view struct PlayerView: View { var episode: Episode @State private var isPlaying: Bool = false var body: some View { VStack { Text(episode.title) .foregroundSt.. 2022. 9. 13.