考虑以下示例:
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
将显示为弹出窗口,因此我需要知道如何解决此用例。
只需给滚动视图一些高度。否则,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)
}
}
}
我找到了一个简单的解决方案:
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
}