SwiftUI—制作渐缓时间曲线的位移动画

2020-07-14  本文已影响0人  anny_4243

原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC3%E8%8A%82offseteaseout-

通过offset、animation方法,实现easeOut类型的位移动画,并设置动画的时长为2秒,位移动画以减缓的时间曲线进行。

示例代码:

struct ContentView : View {
    
    @State var distance: Double = 0 //图像视图的位移距离

    var body: some View {
        VStack{
            Image("logo")
                .offset(x: 0, y: CGFloat(distance)) //按照属性的大小,在垂直方向上移动视图
                .animation(.easeOut(duration: 2)) //设置动画的时长为2秒,动画的时间曲线为easeOut渐缓,也就是说在指定距离的位移动画中,刚开始的位移速度较快,动画快要结束时的位移速度较慢
            
            Divider().fixedSize()
            
            Button(action: {
                self.distance -= 120 //当按钮被点击时,将属性的值减少120,也就是将图像视图向上移动120点的距离
            }) {
                Text("Move Effect")
            }
            
        }
        
    }
}
上一篇下一篇

猜你喜欢

热点阅读