Код: Выделить всё
struct ScrollViewTest: View {
@State private var axis: Axis.Set = .horizontal
var body: some View {
VStack {
ScrollView(axis) {
stack
}
Spacer()
Button("Switch Axis") {
axis = axis == .horizontal ? .vertical : .horizontal
}
}
}
@ViewBuilder
var stack: some View {
let stack = axis.contains(.horizontal) ? AnyLayout(HStackLayout()) : AnyLayout(VStackLayout())
stack {
ForEach(0.. .vertical -> .horizontal].
Чтобы решить эту проблему, мне нужно вместо этого выполнить ветвление if-else:
[code]
var body: some View {
VStack {
if axis == .horizontal {
ScrollView(.horizontal) {
stack
}
} else {
ScrollView(.vertical) {
stack
}
}
Spacer()
Button("Switch Axis") {
axis = axis == .horizontal ? .vertical : .horizontal
}
}
}
Кто-нибудь из вас знает, почему представление прокрутки делает это?
Я рассмотрел этот вопрос SO: вертикальная и горизонтальная прокрутка SwiftUI ScrollView. Код, который я написал, эффективно делает то же самое. Что я хочу знать, так это (причина/любое возможное объяснение) этой ошибки (я просто надеюсь, что кто-нибудь ее обнаружил).
Подробнее здесь: https://stackoverflow.com/questions/798 ... -scrolling
Мобильная версия