mat*_*rda 8 iphone ios swift swiftui ios16
在我的 SwiftUI 应用程序中,我有一个带有嵌套 ScrollView 的列表,因为我已将 iPhone 更新到 iOS 16,所以主列表上的刷新有一个奇怪的行为。似乎每个ScrollView都有自己的刷新。问题是我在主列表上应用了 .refreshable 修饰符,而不是在嵌套列表上。
在 iOS 16 之前,这个问题并不存在。那么,这是一个错误还是我们可以通过某种方式修复它?
这是代码和短视频:
List {
VStack(alignment: .leading) {
Text("Line 1")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5")
Text("Item 6")
Text("Item 7")
Text("Item 8")
Text("Item 9")
Text("Item 10")
}
.frame(height: 180)
}
}
.listRowSeparator(.hidden)
VStack(alignment: .leading) {
Text("Line 2")
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack(spacing: 20) {
Text("Item 1")
Text("Item 2")
Text("Item 3")
Text("Item 4")
Text("Item 5")
Text("Item 6")
Text("Item 7")
Text("Item 8")
Text("Item 9")
Text("Item 10")
}
.frame(height: 180)
}
}
.listRowSeparator(.hidden)
}
.listStyle(.plain)
.refreshable {
print("refresh!")
}
Run Code Online (Sandbox Code Playgroud)
如果您更改List
a 的行ScrollView
,然后更改.listStyle(.plain)
for 的行.padding(.horizontal)
,它将以相同的方式工作,没有错误。