Swiftui ScrollViewreader多个ScrollTo在不同的Foreach



我不能在我的代码中创建很多。scrollto():(我是法国人,抱歉我的英语不好)

else if index == 1 {
withAnimation {
value.scrollTo(topID)
}
}

我的问题是在value.scrollTo(topID)我试图在3个不同的foreach和编译器不编译中实现其中6个,但如果我删除foreach之一的value.scrollTo(topID)它编译

else if wichView.SelectedView == 5 {
HStack {
ForEach(1..<6) { index in
Spacer()
Button(action: {
if index == 3 {
withAnimation() {
wichView.SelectedView = 1
wichView.carouselLocation = 0
}
value.scrollTo(topID)
}
else if index == 1 {
withAnimation {
value.scrollTo(topID)
}
}
},
label: {
Image("IPPV5_TABBITEM(index)")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 40,
height: 40)
})
}
Spacer()
}
.padding(.bottom, -10)
.frame(width: size.width,
height: 35)
}
else if wichView.SelectedView == 6 {
HStack(spacing: size.width/3 - 10) {
Button(action: {
withAnimation {
value.scrollTo(topID)
}
},
label: {
Image("IPPV6-TABITEM1")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 40,
height: 40)

})

Button(action: {
wichView.SelectedView = 1
wichView.carouselLocation = 0
value.scrollTo(topID)
},
label: {
Image("IPPV6-TABITEM2")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 40,
height: 40)
})
Spacer()
}
.padding(.bottom, -10)
.frame(width: size.width - 40,
height: 35)
}
else if wichView.SelectedView == 8 {
IPPV8TabItem
}
else if wichView.SelectedView == 9 {
HStack {
ForEach(1..<6) { index in
Spacer()
Button(action: {
if index == 3 {
withAnimation {
wichView.SelectedView = 1
}
wichView.carouselLocation = 0
// withAnimation {
//  value.scrollTo(topID)
// }
}
else if index == 1 {
// withAnimation {
//  value.scrollTo(topID)
//}
}
},
label: {
Image("IPPV9-(index)")
.resizable()
.aspectRatio(contentMode: .fit)
})
}
Spacer()
}
.frame(width: size.width,
height: 40)
}

这是我的代码的一部分(所有是在一个ScrollView谁是在一个Scrollviewreader谁是在一个Vstack谁是在一个Zstack)

这段代码工作得很好,并且可以编译,因为我注释了一个Foreach的. scrollto(),如果我取消注释,它将无法编译。

请帮忙,我不知道问题是Foreachs还是。scrollto ()?

最后我做了一些像else if wichView.SelectedView == 9 && wichView.SelectedView == 5合并这两个条件,并使用相同的。scrollto它的工作,所以我不明白为什么它不编译之前在不同的Foreach

最新更新