使用MotionAnimation结构为任何视图制作动画。
Background Color
将视图的当前背景颜色动画为给定的颜色。
.background(color: UIColor)
Border Color
将视图的当前边框颜色动画为给定的颜色。
.border(color: UIColor)
Border Width
将视图的当前边框宽度动画到给定的宽度。
.border(width: CGFloat)
Corder Radius
将视图的当前角半径动画到给定的半径。(圆角半径)
.corner(radius: CGFloat)
Transform
将视图的当前变换(透视,缩放,旋转)动画化为给定的变换。
.transform(_ transform: CATransform3D)
Rotate
旋转动画使用360度间隔旋转给定轴周围的视图或图层。例如,旋转180度将使视图围绕给定轴旋转半个间隔。
X Axis, Y Axis, Z Axis
将视图的当前旋转动画到给定的x,y和z值。x,y和z轴动画是通用配置。
.rotate(x: CGFloat, y: CGFloat, z: CGFloat)
Touch
将视图的当前旋转动画到给定的点和z值。当用户触发触摸或手势事件时,通常会使用点和z轴动画。
.rotate(_ point: CGPoint, z: CGFloat)
2D
动画化视图围绕z轴的旋转,这是一个2D视角。
.rotate(_ z: CGFloat)
Spin
旋转动画旋转一个视图或一个给定的轴周围整圈的时间间隔。例如,旋转0.5将围绕给定轴旋转视图半个间隔。
X Axis, Y Axis, Z Axis
将视图的当前旋转动画到给定的x,y和z值。x,y和z轴动画是通用配置。
.spin(x: CGFloat, y: CGFloat, z: CGFloat)
Touch
将视图的当前旋转动画到给定的点和z值。当用户触发触摸或手势事件时,通常会使用点和z轴动画。
.spin(_ point: CGPoint, z: CGFloat)
2D
动画视图围绕z轴旋转,这是一个2D视角。
.spin(_ z: CGFloat)
Scale
将视图的当前比例缩放为给定的x,y和z比例值。
.scale(x: CGFloat, y: CGFloat, z: CGFloat)
将视图的当前x&y比例缩放为给定比例值。
.scale(_ xy: CGFloat)
Translate
动画的视图等于由x,y和z值给出的距离。
.translate(x: CGFloat, y: CGFloat, z: CGFloat)
动画视图等于点和z值给定的距离。
.translate(_ point: CGPoint, z: CGFloat)
Position
将视图的当前位置动画到给定点。
.position(_ point: CGPoint)
Fade
Fade In
在动画中淡入视图。
.fadeIn
Fade Out
在动画中淡出视图。
.fadeOut
Dynamic Fade
动画视图当前的不透明度给定的。
.fade(_ opacity: Double)
Z Position
将视图的当前zPosition动画到给定的zPosition。
.zPosition(_ position: CGFloat)
Size
将视图的当前大小动画到给定的大小。
.size(_ size: CGSize)
Shadow Path
将视图的当前阴影路径动画到给定的阴影路径。
.shadow(path: CGPath)
Shadow Color
将视图的当前阴影颜色动画到给定的阴影颜色。
.shadow(color: UIColor)
Shadow Offset
将视图的当前阴影偏移动画到给定的阴影。
.shadow(offset: CGSize)
如果正在使用Material,则可以使用Offset类型。
.shadow(offset: Offset)
Shadow Opacity
将视图的当前阴影不透明度动画到给定的阴影。
.shadow(opacity: Float)
Shadow Radius
将视图的当前阴影半径动画到给定的半径。
.shadow(radius: CGFloat)
Depth
使用原始值动画影片偏移,不透明度和半径的视图。
.depth(offset: CGSize, opacity: Float, radius: CGFloat)
使用元组来动画视图阴影偏移,不透明度和半径。
.depth(_ depth: (CGSize, Float, CGFloat))
如果正在使用(Material)材质,则可以使用Depth enum或type。
使用DepthPreset枚举值动画视图阴影偏移,不透明度和半径。
.depth(_ preset: DepthPreset)
使用Depth实例动画影片偏移,不透明度和半径的视图。
.depth(_ depth: Depth)
Spring
您通常会使用弹簧动画来激活视图的位置,使其看起来像被弹簧拉向目标。目标越远,对目标的加速越大。
弹簧允许控制基于物理的属性,如弹簧的阻尼和刚度。
- stiffness - 弹簧刚度系数.
- damping - 定义弹簧运动如何由于摩擦力而被阻尼.
.spring(stiffness: CGFloat, damping: CGFloat)
Duration
视图动画的持续时间。如果使用0的持续时间,则该值将被转换为0.01,以接近零值。
.duration(_ time: TimeInterval)
Delay
延迟给定视图的动画。
.delay(_ time: TimeInterval)
Timing Function
设置动画的视图定时功能。
.timingFunction(_ timingFunction: CAMediaTimingFunction)
Completion
创建动画完成后执行的完成块处理程序。
.completion(_ execute: @escaping () -> Void)
使用完成处理程序的另一种方法是传入一个MotionAnimations数组,然后在函数调用的最后添加一个回调处理程序。例如:
view.animate([.delay(1), .duration(0.5), .translate(x: 50, y: 100), .background(color: Color.cyan.base)]) { [weak self] in
// Do something, animation has completed.
}