๊ณต์๋ฌธ์ : A view that arranges its subviews in a vertical line.
์์ง์ผ๋ก ์คํ์ด ์์ด๋ ์ปดํฌ๋ํธ์ด๋ค.
@MainActor @frozen @preconcurrency
struct VStack<Content> where Content : View
๋ทฐ ํ์ ์ด๋ผ๋ฉด VStack์ ๋ค์ด๊ฐ ์์ง์ ์ผ๋ก ๋ฐฐ์ด์ด ๋ ์ ์๋ค.
var body: some View {
VStack(
alignment: .leading,
spacing: 10
) {
ForEach(
1...10,
id: \.self
) {
Text("Item \($0)")
}
}
}
ํด๋น ์ฝ๋๊ฐ ๋์๊ฐ๋ค๋ฉด Item1 ๋ถํฐ Item5๊น์ง ์์ง์ ์ผ๋ก ๋์ด ๋ ํ๋ฉด์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
LazyVStack๊ณผ๋ ๋ค๋ฅด๊ฒ ์์ ๋ค์ด์๋ ๋ฐฐ์ด์ด ํ๋ฒ์ ๋ ๋๋ง ๋๋ค. ๊ทธ๋์ ์ฃผ๋ก lazyํ๊ฒ ์ฐ๊ณ ์ถ์ง ์๊ฑฐ๋, ์ ์์์ content๋ฅผ ๋ด์ ๋ ์ฌ์ฉํ๋ค.
- alignment: HorizontalAlignment
- VStack์ ์์ผ ๋ ์ํ์ ์ผ๋ก๋ ์ด๋ค ์ ๋ ฌ ๊ธฐ์ค์ ๊ฐ๊ณ ์ ๋ ฌ๋๋์ง ์ ์ํ๋ค.
- ๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ Center์ด๊ณ ์ํ๋ค๋ฉด leading, trailing์ผ๋ก ์ง์ ํ ์ ์๋ค.
- spacing: CGFloat?
- ๊ฐ ์๋ธ๋ทฐ์ ๊ฐ๊ฒฉ์ ๊ฒฐ์ ํ๋ค.
- ๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ nil
- CGFloat๊ฐ์ ๋ฃ์ด์ ์ ํด์ค ์ ์๋ค.
- @ViewBuilder content: () -> Content
- ์ค์ ๋ทฐํ์ ์ contents๋ฅผ ๋ฃ์ ์ ์๋ค.
- @ViewBuilder๋ฅผ ์ฑํํ๊ณ ์๊ธฐ์ ์ฌ๋ฌ contents๋ค์ ๋ธ๋ญ์ผ๋ก ์๊ณ ๋ด์์ ํ๋์ ๋ทฐ๋ก ๊ตฌ์ฑํ ์ ์๋ค.