Skip to content

Latest commit

 

History

History
executable file
·
194 lines (152 loc) · 3.28 KB

File metadata and controls

executable file
·
194 lines (152 loc) · 3.28 KB

Spring - Animation

Swift Platform Version Xcode 10.0+ iOS 8.0+

目录

特性

  • 链式语法
  • 无需继承父类
  • 轻量级扩展
  • 基于UIViewAnimation
  • 无代码入侵
  • SwiftUI支持

下载

这是一个demo工程并不包含依赖的子模块SwiftSpring, 您需要使用终端或git客户端,例如Source Tree。

终端

 git clone --recurse-submodules https://github.com/fanglinwei/SwiftSpring.git

Source Tree

https://github.com/fanglinwei/SwiftSpring.git进行克隆还会将`SwiftSpring`设置为子模块。

安装

CocoaPods - Podfile

pod 'SwiftSpring'

Swift Package Manager

您可以使用通过Swift Package ManagerPackage.swift文件中添加正确的描述来安装SwiftSpring:

import PackageDescription

let package = Package(
    name: "YOUR_PROJECT_NAME",
    targets: [],
    dependencies: [
        .package(url: "https://github.com/fanglinwei/SwiftSpring-Package.git", from: "0.0.8")
    ]
)

使用

首先导入:

import SwiftSpring

下面是一些简单示例. 支持所有设备和模拟器:

API

UIKit 链式调用

animationView.spring
.opacity(0.1)
.scale(0.8, 0.8)
.duration(2)
.curve(.easeOutQuad)
.animate()

SwiftUI

SwiftUI 支持 iOS 13.0 及以上系统。

@State private var trigger = false

Text("SwiftSpring")
    .spring(
        .pop,
        trigger: trigger,
        configuration: SpringConfiguration(duration: 0.7, force: 1)
    )

方法

animate() { ... }

动画类型

shake
bounce
jump
pop
morph
squeeze
wobble
swing
flipX
flipY
fall
squeezeLeft
squeezeRight
squeezeDown
squeezeUp
slideLeft
slideRight
slideDown
slideUp
fadeIn
fadeOut
fadeInLeft
fadeInRight
fadeInDown
fadeInUp
zoomIn
zoomOut
flash

曲线

spring
linear
easeIn
easeOut
easeInOut
discrete
easeInSine, easeOutSine, easeInOutSine
easeInQuad, easeOutQuad, easeInOutQuad
easeInCubic, easeOutCubic, easeInOutCubic
easeInQuart, easeOutQuart, easeInOutQuart
easeInQuint, easeOutQuint, easeInOutQuint
easeInExpo, easeOutExpo, easeInOutExpo
easeInCirc, easeOutCirc, easeInOutCirc
easeInBack, easeOutBack, easeInOutBack

属性

force
duration
delay
damping
velocity
repeatCount
scale
x
y
rotate
alpha

* 并非所有属性都能一起使用.

参考

Spring

贡献

如果你需要实现特定功能或遇到错误,请打开issue。 如果你自己扩展了Spring的功能并希望其他人也使用它,请提交拉取请求。

协议

Spring 使用 MIT 协议. 有关更多信息,请参阅 LICENSE 文件.