考虑以下示例:
ZStack{
VStack{
ForEach(0..100) { elem in
Button(action: {"do something..."}, label: Text("\(elem)"))
}
}
ScrollView {
ForEach(0..<100) { elem in
Text("\(elem)")
}
}
}当我把一个ScrollView放在按钮上面时,ScrollView就不能再滚动了。仅在ScrollView下没有按钮的位置。有没有可能“停用”ZStack底层?我已经尝试过.disable(),但这并没有什么帮助。这不是一个真实的例子。ScrollView将显示为弹出窗口,因此我需要知道如何解决此用例。
发布于 2021-03-26 17:08:03
只需给滚动视图一些高度即可。否则,scrollView的高度会变得比屏幕的高度大,所有的元素都在里面,所以它变得不可滚动,因为没有什么可以滚动的。
struct ContentView: View {
let fullHeight : CGFloat = UIScreen.main.bounds.height
var body: some View {
ZStack{
VStack{
ForEach(0..<100) { elem in
Button(action: {
let _ = print("do something...")
}, label:{ Text("Buttons \(elem)") }
)
}
}
ScrollView {
ForEach(0..<100) { elem in
Text("\(elem)")
}
} .frame( height: fullHeight , alignment: .center)
}
}
}发布于 2021-03-27 18:04:27
我找到了一个简单的解决方案:
ZStack{
VStack{
ForEach(0..100) { elem in
Button(action: {"do something..."}, label: Text("\(elem)"))
}
}
ScrollView {
ForEach(0..<100) { elem in
Text("\(elem)")
}
}
.zIndex(1) // <<<<<------ solution
}https://stackoverflow.com/questions/66813403
复制相似问题