궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI/View layout

SwiftUI : Group / GroupBox

서근
QUOTE THE DAY

“ 디버깅은 코드를 새로 만드는 것보다 두 배 더 어렵다. 그래서 만일 당신이 현재 공들여서 코드를 짜고 있다면, 디버깅할만큼 똑똑하지 않다는 뜻이기도 하다. ”

- 브라이언 커니건 (Brian Kernighan)
Written by SeogunSEOGUN

목차

SwiftUI : Group  / GroupBox

Group / GroupBox에 대해 알아보도록 합시다.

Group

Group에서 꼭 외워야 할 것은 VStack 과의 차이점입니다. 간단하게 말하자면

 

- VStack은 최대 10개의 자식을 가질 수 있습니다. (HStack, LazyVStack, LasyHStack 모두 동일)

- Group은 이 문제를 해결해줍니다.

 

코드로 한번 같이 보도록 합시다.

 

아래와 같이 VStack만으로 11개의 자식을 만들게 되면 컴파일 오류가 생깁니다.

swift
UNFOLDED
NavigationView {
VStack {
Text("1")
Text("2")
Text("3")
Text("4")
Text("5")
Text("6")
Text("7")
Text("8")
Text("9")
Text("10")
Text("11") //11번째부터는 컴파일 오류가 생긴다.
}
}

그럴 때에는 Group을 사용해서 해결해 줄 수 있습니다.

swift
UNFOLDED
NavigationView {
VStack {
Group {
Text("1")
Text("2")
Text("3")
Text("4")
Text("5")
Text("6")
Text("7")
Text("8")
Text("9")
Text("10")
}
Group {
Text("11")
}
}
}

SwiftUI : Group  / GroupBox - Group
왼: VStack으로 최대 개수를 구성한 뷰 / 오: Group을 이용한 뷰

GroupBox

GroupBoxcontentlogical그룹과 연관된 optional label이 있는 stylized view입니다.

아래 코드는 일반적인 사용 방법인데, 정의에 'optional label이 있는' 이라고 나와있죠?

 

여기서 label 부분이 optional 이기 때문에  아래 코드와 같이 작성할 수 있습니다.

swift
UNFOLDED
GroupBox(label: Text("Label"), content: {
Text("content")
})
swift
UNFOLDED
GroupBox(content: { Text("content")
})

SwiftUI : Group  / GroupBox - GroupBox

swift
UNFOLDED
struct ContentView: View {
@State private var name = ""
var body: some View {
VStack {
// 1.
GroupBox(label: Label("심장 박동수", systemImage: "heart.fill").font(.largeTitle)) {
Text("69 BPM").font(.title)
}
// 2.
GroupBox {
Text("이름을 입력하세요").font(.title)
TextField("name", text: $name)
}
Spacer()
}.padding(.horizontal)
}
}

SwiftUI : Group  / GroupBox - GroupBox

swift
UNFOLDED
struct SourceLinkView: View {
var body: some View {
GroupBox() {
HStack(spacing: 5) {
Text("참고 사이트")
Spacer()
Link("위키백과", destination: URL(string: "https://ko.wikipedia.org/")!)
Image(systemName: "arrow.up.right.square")
}
.font(.footnote)
}
}
}

SwiftUI : Group  / GroupBox - GroupBox

 

읽어주셔서 감사합니다🤟


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.

'SWIFTUI > View layout' 카테고리의 다른 글

SwiftUI : Slider  (0) 2021.02.01
SwiftUI : Divider 구분선  (0) 2021.01.31
SwiftUI : DatePicker / DateFormatter  (0) 2021.01.25
SwiftUI : Stepper (onIncrement / onDecrement)  (0) 2021.01.25
SwiftUI : ForEach  (0) 2021.01.24


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.