Animation 动画无法与GeometryReader和NavigationView组合使用
我有一个动画图像,它使用偏移量和计时器上下滑动。在您将GeometryReader和NavigationView结合起来之前,这一切都很好。对于NavView和Georgeader这两个独立的应用程序来说,动画也可以正常工作。有什么解决办法吗?(我知道,在本例中不需要GeometryReader)Animation 动画无法与GeometryReader和NavigationView组合使用,animation,swiftui,navigationview,geometryreader,Animation,Swiftui,Navigationview,Geometryreader,我有一个动画图像,它使用偏移量和计时器上下滑动。在您将GeometryReader和NavigationView结合起来之前,这一切都很好。对于NavView和Georgeader这两个独立的应用程序来说,动画也可以正常工作。有什么解决办法吗?(我知道,在本例中不需要GeometryReader) 在这种情况下,修改器的顺序看起来很重要 下面的变体有效。使用Xcode 11.4/iOS 13.4进行测试 struct TestView: View { @State var offset
在这种情况下,修改器的顺序看起来很重要 下面的变体有效。使用Xcode 11.4/iOS 13.4进行测试
struct TestView: View {
@State var offsetSwipeUp: CGFloat = 0
var body: some View{
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
return NavigationView {
GeometryReader { geometry in
Image(systemName: "chevron.up")
.animation(.easeInOut(duration: 1))
.offset(y: CGFloat(self.offsetSwipeUp))
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
.onReceive(timer){ _ in
if self.offsetSwipeUp == .zero{
self.offsetSwipeUp = -10
} else {
self.offsetSwipeUp = .zero
}
}
}
}
在这种情况下,修改器的顺序看起来很重要 下面的变体有效。使用Xcode 11.4/iOS 13.4进行测试
struct TestView: View {
@State var offsetSwipeUp: CGFloat = 0
var body: some View{
let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
return NavigationView {
GeometryReader { geometry in
Image(systemName: "chevron.up")
.animation(.easeInOut(duration: 1))
.offset(y: CGFloat(self.offsetSwipeUp))
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
.onReceive(timer){ _ in
if self.offsetSwipeUp == .zero{
self.offsetSwipeUp = -10
} else {
self.offsetSwipeUp = .zero
}
}
}
}