TextField๋ ๊ธฐ๋ณธ์ ์ผ๋ก String ํ์
์ Binding ํ ์ ์์ TextField("๊ฐ์ ์
๋ ฅํ์ธ์", text: ) String์ด ์๋ ํ์
์ Bindingํ๋ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์ํจ. ์ด๋ format์ ์ฌ์ฉํ๋ฉด ํ๋กํผํฐ์ ํ์
์ ๋ฐ๊ฟ์ฃผ์ง ์๊ณ ๋ ํ
์คํธ ํ๋์ ๊ฐ์ ํ์ํ ์ ์์ ใด checkAmount ๊ฐ์ด double์ด๊ธฐ ๋๋ฌธ์ TextField์ text ์ธ์์ Binding์ผ๋ก ์ ๋ฌํ๋ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์ํจ์ ํ์ธํ ์ ์์ TextField( "Proper name", value: $nameComponents, format: .name(style: .medium) ) ์ฌ์ฉ์์ ์
๋ ฅ์ผ๋ก ๋ถํฐ ์ ๋ฌ๋ฐ์ ๊ฐ์ ์ ์ฅํ ํ๋กํผํฐ๋ฅผ value๋ก ์ ๋ฌํ๊ณ format ํ์์ format ์ธ์๋ก ์ ๋ฌ..
์ ์ฒด ๊ธ
UIKit์ผ๋ก ๊ฐ๋ฐํ๋ค๊ฐ ํ์ฌ๋ SwiftUI๋ก ์๋น์ค ๊ฐ๋ฐํ๊ณ ์๋ Fram์ ๋๋ค SwiftUI์ Combine์ ๋ํด ์๊ฒ ๋ ๊ฒ๊ณผ ๊ธฐ์ ์ ๊ณต์ ํ๋ ๋ธ๋ก๊ทธ ์ ๋๋ค. ์ฃผ์ : ์ ์๋๊ฑฐ ๋ ์ ์ ์ ์์ForEach array, ranges์ ํจ๊ป ๋ฐ๋ณต ์์
์ ํตํด ์ฌ๋ฌ ๋ทฐ๋ฅผ ์์ฑํ ์ ์์ ํด๋ก์ ธ๋ฅผ ํตํด ์คํ๋๋ฉฐ loop์ ๋ชจ๋ ์์ดํ
์ ํ๋ฒ์ฉ ์ํํ๊ฒ ๋จ class test { init() { let titles = ["a", "b", "c", "d", "e"] self.loopAllItems(items: titles) } func loopAllItems(items: [String]) { items.forEach { print($0) } } } ForEach๋ ๊ธฐ์กด์ Swift์์ ์ฌ์ฉํ ๊ณ ์ฐจ ํจ์ forEach์ ๋์๊ณผ ์ฌ์ฉ๋ฒ์ด ๊ฐ์ ScrollView { ForEach(0 ..< 100) { Text("\($0)") } } ForEach๋ฅผ ์ฌ์ฉํด์ ๋ฐ๋ณต๋๋ ๋ทฐ๋ฅผ ๊ฐ๋จํ ์ฝ๋๋ก ํ๋ฉด์ ๊ทธ๋ ค ์ค ์..
๋ฌ๋ฌ์ฌ์ธ์ two-way binding์ ํ ๋ ์ฌ์ฉ๋จ Text("๋น์ ์ ๋์ด๋ : \(age)") Text์ ๊ฒฝ์ฐ ํ๋กํผํฐ์ ์ํ๋ฅผ ๊ทธ๋๋ก ๋ณด์ฌ์ค TextField์ ๊ฒฝ์ฐ text๋ผ๋ ์ธ์์ ํ์ํ ๊ฐ์ด Binding two-way binding์ ํ๋กํผํฐ์ ์ํ ๊ฐ์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ฉด์ ํด๋น ์ํ๊ฐ์ ์
๋ฐ์ดํธ ํ๊ณ , ๊ทธ ์
๋ฐ์ดํธ ํ ๊ฐ์ ๋ค์ ํ๋ฉด์ ๋ณด์ฌ์ค ์ ์์ struct ContentView: View { @State private var age = "" var body: some View { VStack { TextField("๋์ด๋ฅผ ์
๋ ฅํ์์ค.", text: $age) Text("๋น์ ์ ๋์ด๋ : \(age)") }.padding() } } two-way binding์ ํ๋กํผํฐ ๋ฐ๋ก ์์ ..
์์ ์ฝ๋ struct ContentView: View { @State private var count = 0 @State private var isOne = false var body: some View { VStack { Button("๋ฒํผ ๋๋ฆฐ ํ์ \(count)") { self.count += 1 } Toggle(isOn: $isOne) { Text("ํ ๊ธ ์ํ \(isOne ? "on" : "off")") } } } } SwiftUI์์ View ๋จ์์ ๊ฐ๋จํ ๊ฐ์ State๋ฅผ ์ฌ์ฉํด์ ๊ด๋ฆฌํ๋๋ฐ ์ด๋ Button์ State์ ์ ๊ทผํ๊ธฐ ์ํด self๋ฅผ ์ฌ์ฉํ๊ณ Toggle์ ๋ฌ๋ฌ ์ฌ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ ์์ ์๋ค. ์ฌ์ค ๊ฐ๊ฐ ํ๋กํผํฐ์ ์ ๊ทผํ ๋ ์ญํ ๊ณผ ์์น๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. State์ ๊ฐ..
Intro ํ์ฌ ๋ทฐ์์ ๋ณด์ฌ์ง๋ ๋ฐ์ดํฐ๋ค์ State๋ก ๊ด๋ฆฌํ ์ ์์. ์ด ์ํ์ ์ํด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ UI๋ฅผ ๊ด๋ฆฌํ๋ฏ๋ก views are a function of their state ๋ผ๊ณ ํ๊ธฐ๋ ํจ (์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๊ธฐ ์ ๊น์ง ๋ฒํผ์ ๋นํ์ฑํ ์ํค๋ ๊ฒ๋ state๋ค์ ์ํด ๋ทฐ๊ฐ ๊ด๋ฆฌ๋๋ ๊ฒ) SwiftUI๋ struct๋ก ๊ตฌํ๋ view๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ Swift์ UIKit์ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ ๋จ์ํ property๋ฅผ ์ ์ธํ ๋ค ๊ตฌ์กฐ์ฒด ์์์ ๊ทธ ๊ฐ์ ๋ฐ๊ฟ์ ์์ ํ๋กํผํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์ State๋ผ๋ ํค์๋๋ฅผ ๊ฐ์ง property wrapper๋ฅผ ์ฌ์ฉํ ์ ์์ SwiftUI๋ ๋ทฐ๋ฅผ ์ ๊ฑฐํ๊ณ ๋ค์ ๊ทธ๋ฆฌ๋ ์ผ์ ์์ฃผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ ๋ทฐ ๋ด๋ถ์์ ์ฌ์ฉํ๋ ๊ฐ์ ๋ํด ๋จ์ํ๊ฒ..
๊ธฐ์กด์ ์ฌ์ฉ๋๋ NavigaitonView๋ Deprecated ๋๊ณ NavigationView์ ๋์ผํ๊ฒ NavigationStack์ ์ฌ์ฉํ๋ฉด ๋จ home indicator์ ์๊ณ๋ฅผ ํฌํจํ ์๋จ ์์ญ์๋ ๋ทฐ๋ฅผ ์์น ์ํฌ ์ ์์ผ๋ ์ปจํ
์ธ ๊ฐ ๊ฒน์น๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋ณด๊ธฐ์ ๋ถํธํ ์ ์์ SwiftUI๋ ์์คํ
UI๋ ๊ธฐ๊ธฐ์ ์ฝ๋ ์์ญ์ ํผํด ์ปดํฌ๋ํธ๋ฅผ ์์น ์ํฌ ์ ์์ผ๋ ์คํฌ๋กค ์ ์์คํ
์์ญ์ ๊ฒน์น ์ ์์ ๋ค๋น๊ฒ์ด์
์ ์ฌ์ฉํ๋ฉด ์๋จ์ด ๋ค๋น๊ฒ์ด์
์์ญ์ด ๋๋ฏ๋ก ์์คํ
์์ญ๊ณผ ์ปจํ
์ธ ๊ฐ ๊ฒน์น์ง ์๊ฒ ํ ์ ์์ var body: some View { NavigationStack { Form { Section { Text("red") Text("yellow") Text("black") } } .navig..
Form ์ ํ ๊ณต์ ๋ฌธ์ ๋ทฐ๋ฅผ ํฌํจ ์ํฌ ์ ์๋ Containe Control์ ๊ทธ๋ฃนํ ํ ์ ์์. ํน์ ์ปจํธ๋กค์ ๋ํด ์ง์ ๋ UI๋ฅผ ๋ณด์ฌ์ค. ์๋ ๊ธ ์ฐธ๊ณ ์ฃผ๋ก ์ค์ ํ๋ฉด์ด๋ ๊ธฐ๋ณธ ์ฑ์ ๋ฆฌ์คํธ์์ ์ฌ์ฉ๋จ Form ์์ญ ์คํฌ๋กค๋ง ๊ฐ๋ฅ struct Form where Content : View ์ฝ๋ ์ ์ฒด ๊น ํ๋ธ ๋งํฌ Group ํผ์ ์ต๋ 10๊ฐ์ ๋ทฐ๋ฅผ ํฌํจ ํ ์ ์๊ธฐ ๋๋ฌธ์ Group ์ ์ฌ์ฉํ๋ฉด ๋ ๋ง์ ๋ทฐ๋ฅผ ํฌํจ ์ํฌ ์ ์์ Form { Group { Text("Hello, world! 1") Text("Hello, world! 2") Text("Hello, world! 3") Text("Hello, world! 4") Text("Hello, world! 5") Text("Hello, world..
Swift 5.1๋ถํฐ ์ฌ์ฉ๊ฐ๋ฅ getter, setter, computed property ์ฝ๋ ์ค๋ณต์ ์ค์ผ ์ ์์ ์ฐ์ฐ ํ๋กํผํฐ ๋ก์ง์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ ๊ธฐ๋ณธ ์ฐ์ฐ ํ๋กํผํฐ์ ๊ธฐ๋ฅ์ ๊ฐ๋ณ ํด๋์ค์ ๊ตฌ์กฐ์ฒด์ ๋ถ๋ฆฌํ ์ ์๊ฒ ํ์ฌ ์ฑ ์ฝ๋์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํจ ํ๋กํผํฐ ๋ํผ ๊ตฌํ @propertyWrapper struct Tenfold { private(set) var num: Int = 0 var wrappedValue: Int { get { num } set { num = newValue * 10 } } init(wrappedValue value: Int) { self.wrappedValue = value } } @propertyWrapper ์ง์์๋ฅผ ์ด์ฉํ์ฌ ์ ์ธ ํด๋์ค๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ ๊ฐ๋ฅ..