美文网首页
SwiftUI中动画Animation(四)手势+动画

SwiftUI中动画Animation(四)手势+动画

作者: 刘铁崧 | 来源:发表于2020-05-30 23:57 被阅读0次

效果

2020-05-30 23.56.34.gif

代码

struct GesturesAnimation: View {
    @State private var offfSet:CGSize = .zero
    var body: some View {
        LinearGradient(
            gradient: Gradient(colors: [.red,.purple]), startPoint: .topLeading, endPoint: .bottomTrailing
        )//线性渐变
            .frame(width:300,height: 300)
        .clipShape(RoundedRectangle(cornerRadius: 20))
        .offset(offfSet)//设置偏移量
        .gesture(//手势
            DragGesture()//拖拽手势
                .onChanged{//如果使用到内部参数可以直接通过{}方式书写
                    self.offfSet = $0.translation
                }
                .onEnded({ (gesture) in
                //如果没有用到内部参数  则需要正常书写 或者 在内部调用下_ in如:
                    //.onEnded{
                        //_ in
                    //}
                    // 在数据改变的是有应用动画效果
                    withAnimation(.spring()){
                        self.offfSet = .zero //取消拖拽返回原来位置
                    }
                    
                })
                
                
        )
        
    }
}

文字添加拖拽组合动画效果

效果:

2020-05-31 15.40.22.gif

代码:

@State private var letters = Array("数组文字动画效果")
@State private var offfSet2:CGSize = .zero
@State private var enabled = false
HStack(spacing:0){
                ForEach(letters.indices,id:\.self){
                    index in
                    Text(String(self.letters[index]))
                        .font(.title)
                        .background(self.enabled ? Color.red : Color.purple)
                        .foregroundColor(.white)
                        .offset(self.offfSet2)
                        .animation(Animation.default.delay(Double(index)/20))
                }
                
            }
            .gesture(
                DragGesture()
                    .onChanged{self.offfSet2 = $0.translation}
                    .onEnded{_ in
                        self.offfSet2 = .zero
                        self.enabled.toggle()
                    }
            )

相关文章

  • SwiftUI中动画Animation(四)手势+动画

    效果 代码 文字添加拖拽组合动画效果 效果: 代码:

  • Flutter 动画与打包

    动画与打包 动画 ​ Flutter中的动画系统基于Animation对象的,和之前的手势不同,它不是...

  • SwiftUI中动画Animation(二)动画绑定

    swiftUI中除了当视图发生变化时可以触发动画,数据发生变化时也可以绑定触发动画效果: 注:通过$amount....

  • SwiftUI中动画Animation(五)转场动画

    transition有两种使用,可以直接使用合并动画,即显示隐藏共用同种动画,也可以分设置两种不同状态动画效果如下...

  • 2017-06-18

    css3中变形与动画(上) 1.Animation 动画定义animation动画2.Animation动画播放 ...

  • 动画与打包

    1、动画 Flutter中的动画系统基于Animation对象的,和之前的手势不同,它不是一个Widget,这是因...

  • Android动画目录

    Android中的动画分类 Animation(动画):View Animation(视图动画):帧动画(Fram...

  • 8 动画与打包

    动画 Flutter中的动画系统基于Animation对象的,和之前的手势不同,它不是一个Widget,这是因为A...

  • iOS中的那些动画

    iOS中的动画分为以下几种 一 、 Core Animation二 、 UIView动画三 、 Block动画四 ...

  • SwiftUI中动画Animation(一)隐式动画

    隐式动画 隐士动画的基本使用(一个简单的点击放大效果) 几中常用的动画模式 添加循环自动播放动画效果 注:练市调用...

网友评论

      本文标题:SwiftUI中动画Animation(四)手势+动画

      本文链接:https://www.haomeiwen.com/subject/ghikzhtx.html