#ios #swiftui #vstack #spacing
В SwiftUI у стеков (VStack, HStack, их Lazy-версии) есть дефолтный спейсинг (расстояние между элементами), который по умолчанию равен
Однако
В SwiftUI у стеков (VStack, HStack, их Lazy-версии) есть дефолтный спейсинг (расстояние между элементами), который по умолчанию равен
nil
.Однако
nil
!= 0, на скриншоте пример, код ниже:
import SwiftUI
struct SpacingComparison: View {
private let numbers = Array(0..<10)
var body: some View {
HStack(spacing: 20) {
VStack(spacing: nil) {
Text("spacing: nil")
ForEach(numbers, id: \.self) { i in
makeDemoRectangle(number: i)
}
}
VStack(spacing: 0) {
Text("spacing: 0")
ForEach(numbers, id: \.self) { i in
makeDemoRectangle(number: i)
}
}
}
}
private func makeDemoRectangle(number: Int) -> some View {
Rectangle()
.frame(height: 20)
.overlay { Text("\(number)") }
}
}
#Preview {
SpacingComparison()
}
😁4👍3