我正在使用SwiftUI(iOS 15)实现一个自定义底部表单。如果我隐藏并重新打开滑动按钮可见的列表,列表将停止响应手势。
struct ListView: View {
var body: some View {
List {
Section {
Text("1").swipeActions { Button(action: {}) { Text("Do!") } }
}
}
}
}
struct ContentView: View {
@State var showList: Bool = false
var body: some View {
VStack {
Toggle("Show", isOn: $showList).toggleStyle(.button)
if self.showList {
ListView()
}
}
}
}
我试了几样东西:
选项1:标准SwiftUI工作表工作正常,但我不能使用它,因为我需要控制工作表的高度。
var body: some View {
VStack {
Toggle("Show", isOn: $showList).toggleStyle(.button)
.sheet(isPresented: $showList, content: {
Toggle("Close", isOn: $showList).toggleStyle(.button)
ListView()
})
}
}
选项2:我可以通过在顶部放置一个空白视图来解决这个问题,但是当我再次显示列表时,滑动操作仍然在进行,所以这并不理想。
var body: some View {
VStack {
Toggle("Show", isOn: $showList).toggleStyle(.button)
ZStack {
ListView()
if !self.showList {
Text("")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color(UIColor.systemBackground))
}
}
}
}
你知道该怎么做吗?
1条答案
按热度按时间uyto3xhc1#
终于解决了,将List嵌入NavigationView就解决了这个问题。