美文网首页
SwiftUI中动画Animation(一)隐式动画

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

作者: 刘铁崧 | 来源:发表于2020-05-29 15:19 被阅读0次

隐式动画

隐士动画的基本使用(一个简单的点击放大效果)

Button("点击变大"){
                self.amount += 1
            }
            .foregroundColor(.white)
            .padding(30)
            .background(Color.black)
            .clipShape(Circle())
            .scaleEffect(amount)//缩放
            .blur(radius: amount-1)//模糊效果(动画效果触发让文字越来越模糊)
            .animation(Animation.default)//隐式动画

几中常用的动画模式


extension Animation {

    public static let `default`: Animation
}

@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
extension Animation {

    public static func easeInOut(duration: Double) -> Animation

    public static var easeInOut: Animation { get }

    public static func easeIn(duration: Double) -> Animation

    public static var easeIn: Animation { get }

    public static func easeOut(duration: Double) -> Animation

    public static var easeOut: Animation { get }

    public static func linear(duration: Double) -> Animation

    public static var linear: Animation { get }

    public static func timingCurve(_ c0x: Double, _ c0y: Double, _ c1x: Double, _ c1y: Double, duration: Double = 0.35) -> Animation
}

添加循环自动播放动画效果


2020-05-29 12.52.00.gif
            Button("自定义"){
//                self.amount2 += 1
            }
            .foregroundColor(.white)
            .padding(30)
            .background(Color.red)
            .clipShape(Circle())
            .overlay(//描边 要结合clipshape一起使用
                Circle()//覆盖圆形
                    .stroke(Color.red,lineWidth: 1)
                    .scaleEffect(amount2)
                    .opacity(Double(2-amount2))
//                    .animation(Animation.easeInOut(duration: 3).repeatCount(5, autoreverses: false))//链式调用必须带Animation,autoreverses:自动反转
                .animation(Animation.easeOut(duration: 3).repeatForever(autoreverses: false))//链式调用必须带Animation,autoreverses:自动反转
            )
            .onAppear {//按钮出现的时候触发,改变数值触发动画效果
                    self.amount2 = 2
            }

注:练市调用 repeateForever等方法需要在前面声明调用Animation,否则会报错如下:

.easeOut(duration: 3).repeatForever(autoreverses: false

相关文章

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

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

  • SwiftUI -- View 动画

    SwiftUI 中的动画有两种类型:显式动画和隐式动画。 一、显式动画 显式动画通过 withAnimation ...

  • SwiftUI中动画Animation(三)组合隐式动画

    效果 注:系统看到.animation后就会把前面的内容自动写入动画效果,如果有多个情况,则依次在后面调用.ani...

  • Flutter 创建符合预期的 Animation

    Flutter 当中动画有隐式动画与显式动画。实现显示动画最终目的就是获取到预期的 Animation 实例。达到...

  • iOS之让你的App动起来

    前言 本文只要描述了iOS中的Core Animation(核心动画:隐式动画、显示动画)、贝塞尔曲线、UIVie...

  • SceneKit之Animation

    Animation 我们来了解一下隐式动画、显式动画和操作,以及何时在应用程序中选择它们。 SceneKit的动画...

  • iOS Core Animation Advanced Tech

    隐式动画 在Core Animation中,屏幕上的任何东西都可以做动画,并且默认动画就是打开的。例如当改变CAL...

  • 核心动画深度剖析

    一、隐式动画 隐式是因为我们并没有指定任何动画的类型,我们仅仅改变了一个属性,然后Core Animation来决...

  • iOS动画-CALayer隐式动画原理与特性

    Core Animation的一个非常显著的特性是就是实现动画,而且它支持隐式动画和显式动画两种形式,本篇我们主要...

  • 第六篇:UIView block动画

    在开始学习Core Animation提供的layer的隐式动画和layer的显式动画之前,我们先来总结一下UIV...

网友评论

      本文标题:SwiftUI中动画Animation(一)隐式动画

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