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. ์ด์ 1 ๋ค์