【发布时间】:2021-01-04 19:04:30
【问题描述】:
我正在尝试通过漂亮流畅的动画使黄色视图从底部和顶部消失。 (滑动/移动到顶部/底部+渐变并保持中间视图占据整个空间) 这是我现在的状态,一切都不是顺滑漂亮哈哈。但它有效。
import SwiftUI
struct ContentView: View {
@State var isInterfaceHidden: Bool = false
var body: some View {
VStack(spacing: 0, content: {
if !isInterfaceHidden {
Rectangle()
.id("animation")
.foregroundColor(Color.yellow)
.frame(height: 40)
.transition(AnyTransition.move(edge: .top).combined(with: .opacity).animation(.linear))
}
Rectangle()
.id("animation2")
.foregroundColor(Color.red)
.transition(AnyTransition.opacity.animation(Animation.linear))
/// We make sure it won't cover the top and bottom view.
.zIndex(-1)
.background(Color.red)
.onTapGesture(perform: {
DispatchQueue.main.async {
self.isInterfaceHidden.toggle()
}
})
if !isInterfaceHidden {
Rectangle()
.id("animation3")
.foregroundColor(Color.yellow)
.frame(height: 80)
.transition(AnyTransition.move(edge: .bottom).combined(with: .opacity).animation(.linear))
}
})
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
当前动画:
Edit3:感谢@Andrew,我能够以更好的状态进步。 但现在我有一种生涩的动画。 有什么想法吗?
【问题讨论】:
-
如果您尝试将两个黄色矩形都固定并移动红色矩形?这样你就可以去掉黄色矩形,这就是给你带来麻烦的原因
标签: swift animation swiftui ios14