基本上,每当我尝试使用AnyTransition.move(edge: .bottom)
转换水平滚动ScrollView时,应用程序都会冻结,并且内存会不断增加。我设法通过以下方式重现该问题:
struct ContentView: View {
@State private var showScroll: Bool = false
var body: some View {
VStack {
Spacer()
Button(action: {
withAnimation {
self.showScroll = true
}
},label: {
Text("Hit me")
}).padding()
.background(Capsule().fill())
Spacer()
if showScroll {
scrollView
}
}
}
var scrollView: some View {
ScrollView(.horizontal,showsIndicators: false) {
HStack {
Text("Horizontal list")
Text("Horizontal list")
Text("Horizontal list")
Text("Horizontal list")
}
}
.frame(height: 100)
.transition(.move(edge: .bottom))
}
}
将ScrollView轴更改为.vertical
可以防止应用程序挂起,将过渡更改为另一个边缘(例如.leading
)也是如此。
还有其他人遇到过这样的事情吗?