swiftui - 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
合并两个条件并使用相同的 .scrollLTo 它的工作,所以我不明白为什么它之前没有在不同的 Foreach 中编译
推荐阅读
- python - 在 python 中显示来自服务器的图像时面临问题
- swift - 室内快速高度不准确
- javascript - Echo JS onclick填充功能AJAX不起作用
- log4j - 在单个 WebSphere Application Server 8.5 Base 实例上配置多个 log4j.xml
- javascript - 如何使用 .post 和 .getJSON 方法一起使用 jQuery 将我的 JSON 数据输出到 html 表中?
- ios - 无法将 uilabel 的字体大小调整为其高度
- r - R - 基于保留行的多列删除重复值
- javascript - 如何增加 React Prop
- dynamics-crm - 导航到设置页面
- r - 为什么在我的三重维恩图中,没有重叠的圆圈与 R 中的其他圆圈隔离开来?