只需复制并粘贴代码即可查看行为。我想确认我做错了什么还是这是一个错误?
import SwiftUI
struct StackOverflow13: View {
@State var hide: Bool = false
var body: some View {
VStack {
Spacer()
Button(action: {
self.hide.toggle()
}) {
Text("Hide")
}
Spacer()
if(!hide) {
ScrollView(.horizontal, showsIndicators: false) {
HStack {
ForEach(1...20, id:\.self) {
Text("\($0)")
}
}
}
.frame(height: 50, alignment: .center)
.padding()
.background(Color.red)
.animation(.linear)
.transition(.move(edge: .bottom))
}
}.edgesIgnoringSafeArea(.all)
}
}
struct StackOverflow13_Previews: PreviewProvider {
static var previews: some View {
StackOverflow13()
}
}
运行代码并按Hide
数字将开始无限抖动,如果我删除.transition
修饰符,一切似乎都正常。
同样重要的是要注意删除.edgesIgnoringSafeArea
修饰符会解决它,但我确实需要这个修饰符。