如何解决Swiftui ScrollViewreader 在不同的 Foreach 中使用多个 ScrollTo
我不能在我的代码中创建很多 .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
的事情来合并两个条件并使用相同的 .scrollLTo 它可以工作,所以我不明白为什么它之前没有在不同的 Foreach 中编译
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。