我有一个ScrollView和一个LazyVStack,它有n个子视图。每个子视图都有一个按钮,它将显示一个确认对话框,确认对话框是在子视图中创建的。
在看到3个(或多或少)子视图后,确认对话框由于某种原因不起作用,你可以多次按下按钮,但不会立即显示对话框,如果你在滚动时等待,突然每个对话框都会一个接一个地弹出。
video testing
测试代码:
struct ContentView: View {
var body: some View {
ScrollView {
LazyVStack(spacing: 50) {
ForEach(0...100, id: \.self) { _ in
SubView()
}
}
}
.padding()
}
}
struct SubView: View {
@State var flag = false
var body: some View {
ZStack(alignment: .bottom) {
RoundedRectangle(cornerRadius: 30)
.frame(height: 500)
.foregroundColor(.gray)
.overlay {
Button("Press me") {
flag.toggle()
}
.confirmationDialog("", isPresented: $flag, actions: {
Button(role: .none) {
print("option 1")
} label: {
Text("option 1")
}
Button(role: .cancel) {
flag = false
} label: {
Text("cancel")
}
})
}
}
}
}
1条答案
按热度按时间fykwrbwg1#
进场
confirmationDialog
移出LazyVStack
代码