easeqs-objc 0.1.1

easeqs-objc 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2017年10月

Nik Burnt 维护。



  • 作者:
  • Nik Burnt

快速查看

该库是在使用关键帧动画且关键值不易通过动画进度进行插值时创建的,适用于常规使用。

easeqs

可用的缓动函数

以下是可用的缓动函数列表

进入 离开 进入和离开 离开和进入
线性
正弦
二次方
三次方
四次方
五次方
指数
圆形
回弹
弹跳
弹性

用法

此库可以通过面向对象和函数式两种方式使用。
在第一种情况下,缓动函数代表以下对象实例之一(它们都是 ESQEasingFunction 的子类)

  • ESQLinearEasingFunction
  • ESQSinusoidalEasingFunction
  • ESQQuadraticEasingFunction
  • ESQCubicEasingFunction
  • ESQQuarticEasingFunction
  • ESQQuinticEasingFunction
  • ESQExponentialEasingFunction
  • ESQCircularEasingFunction
  • ESQBackEasingFunction
  • ESQBounceEasingFunction
  • ESQElasticEasingFunction

这些对象可以通过以下几种方式实例化:

  1. 不带任何参数,将使用默认类型(ESQEasingFunctionTypeOut)和参数
CGFloat progress = ...
ESQEasingFunction *easingFunction = [[ESQElasticEasingFunction alloc] init];
CGFloat easedProgress = [easingFunction easedProgress:progress];
  1. 指定类型(如果函数也具有参数,则将使用默认值)
CGFloat progress = ...
ESQEasingFunction *easingFunction = [ESQElasticEasingFunction easingFunctionWithType:ESQEasingFunctionTypeInOut];
CGFloat easedProgress = [easingFunction easedProgress:progress];
  1. 指定类型和参数
CGFloat customAmplitude = ...
CGFloat progress = ...
ESQEasingFunction *easingFunction = [ESQElasticEasingFunction easingFunctionWithType:ESQEasingFunctionTypeInOut amplitude:customAmplitude  period:ESQDefaultElasticPeriod];
CGFloat easedProgress = [easingFunction easedProgress:progress];

此外,如果您更喜欢函数或需要更好的性能,您可以使用与使用对象具有相同结果的缓动函数。以下是所有可用缓动函数的列表:

进入 离开 进入和离开 离开和进入
线性 linearIn(p) linearOut(p) linearInOut(p) linearOutIn(p)
正弦 sinusoidalIn(p) sinusoidalOut(p) sinusoidalInOut(p) sinusoidalOutIn(p)
二次方 quadraticIn(p) quadraticOut(p) quadraticInOut(p) quadraticOutIn(p)
三次方 cubicIn(p) cubicOut(p) cubicInOut(p) cubicOutIn(p)
四次方 quarticIn(p) quarticOut(p) quarticInOut(p) quarticOutIn(p)
五次方 quinticIn(p) quinticOut(p) quinticInOut(p) quinticOutIn(p)
指数 exponentialIn(p) exponentialOut(p) exponentialInOut(p) exponentialOutIn(p)
圆形 circularIn(p) circularOut(p) circularInOut(p) circularOutIn(p)
回弹 backIn(p, o) backOut(p, o) backInOut(p, o) backOutIn(p, o)
弹跳 bounceIn(p, o) bounceOut(p, o) bounceInOut(p, o) bounceOutIn(p, o)
弹性 elasticIn(p, a, q) elasticOut(p, a, q) elasticInOut(p, a, q) elasticOutIn(p, a, q)

每个函数都应该接收进度作为输入,并获取一些参数(如果需要)。

CGFloat customAmplitude = ...
CGFloat progress = ...
CGFloat easedProgress = elasticInOut(progress, customAmplitude, ESQDefaultElasticPeriod);

请注意,提供的函数默认值在每个头文件中均有说明,其中说明了此函数。

安装

easeqs-objc 通过 CocoaPods 可用,或可以轻松地从源代码构建。

动态框架

如果您正在使用 Swift,您可能希望安装动态框架,这可以通过以下 Podfile 完成:

platform :ios, '9.0'

use_frameworks!

pod 'easeqs-objc'

路线图

  • 增加4维结构贝塞尔曲线动画支持(CGRect)
  • 增加Carthage支持
  • 考虑更好的方式描述复杂抽象结构的动画的多个贝塞尔函数(二维或以上)
  • 创建Swift版本