본문 바로가기
iOS/기초

SwiftUI 기초 - Form

by jedchoi 2020. 9. 25.

 

Form은 HStack이나 VStack과 유사하게 동작한다.

즉, Form 안에는 여러 뷰를 담을 수 있다.

하지만 특정 컨트롤 요소에 대햇 더 보기 좋고, 잘 동작하게 해준다.

 

 - Form의 생성

    @State var toggle = false

    var body: some View {
        NavigationView {
            Form {
                Toggle(isOn: $toggle) {
                    Text("알람 설정")
                }
                Button(action: {
                }) {
                    Text("초기화")
                }
            }.navigationBarTitle(Text("Settings"))
        }
    }

 

- Secion 추가

    @State var alarmToggle = false
    @State var autoLoginToggle = false

    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("스위치")) {
                    Toggle(isOn: $alarmToggle) {
                        Text("알람 설정")
                    }
                    Toggle(isOn: $autoLoginToggle) {
                        Text("자동 로그인")
                    }
                }
                Section(header: Text("버튼")) {
                    Button(action: {
                    }) {
                        Text("초기화")
                    }
                    Button(action: {

                    }){
                        Text("로그아웃")
                    }
                }
            }.navigationBarTitle(Text("Settings"))
        }
    }

 

 

- 비활성화와 숨기기

    @State var alarmToggle = false
    @State var autoLoginToggle = false
    @State var disableButtonToggle = false
    @State var hideButtonSectionToggle = false

    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("스위치")) {
                    Toggle(isOn: $alarmToggle) {
                        Text("알람 설정")
                    }
                    Toggle(isOn: $autoLoginToggle) {
                        Text("자동 로그인")
                    }
                    Toggle(isOn: $disableButtonToggle) {
                        Text("초기화 버튼 활성화")
                    }.disabled(hideButtonSectionToggle)
                    Toggle(isOn: $hideButtonSectionToggle) {
                        Text("버튼 섹션 숨기기")
                    }
                }
                if (!hideButtonSectionToggle) {
                    Section(header: Text("버튼")) {
                        Button(action: {
                        }) {
                            Text("초기화")
                        }.disabled(disableButtonToggle)
                        Button(action: {

                        }) {
                            Text("로그아웃")
                        }
                    }
                }
            }.navigationBarTitle(Text("Settings"))
        }
    }

 

'iOS > 기초' 카테고리의 다른 글

URLSession 사용하기  (0) 2022.03.21
[Swift] url로 ImageView에 image 설정하기  (0) 2022.03.18
SwiftUI 기초 - State, onTabGesture, withAnimation  (0) 2020.09.25
SwiftUI 기초 - Slider, Stepper, Picker  (0) 2020.09.25
SwiftUI 기초 - List  (0) 2020.09.25