SCViewShaker 1.0.2

SCViewShaker 1.0.2

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新发布2014 年 12 月

Simon Corsin 维护。



  • Simon CORSIN

关于

这是一个高度可配置的UIView分类,用于摇晃视图。您可以通过一行代码开始摇晃视图 :). 它支持几种不同的摇晃样式(水平、垂直、旋转)并允许您配置持续时间、速度和摇晃强度。

用法

SCViewShaker 作为UIView的分类工作。它提供以下方法

- (void)shake;

- (void)shakeWithOptions:(SCShakeOptions)shakeOptions force:(CGFloat)force duration:(CGFloat)duration iterationDuration:(CGFloat)iterationDuration completionHandler:(ShakeCompletionHandler)completionHandler

- (void)endShaking

@property (readonly, nonatomic) BOOL isShaking

shakeOptions 是一个枚举,可以通过使用 OR 运算符(如 SCShakeOptionsDirectionRotate | SCShakeOptionsForceInterpolationNone)激活。

force 是每次摇晃迭代所应施加的力的系数(通常在0和1之间,尽管没有限制你设置更高值)。

duration 是摇晃运动的总持续时间。这可能会根据您设置的选择而被忽略。iterationDuration 是每次摇晃迭代将持续多长时间。如果您想要一个适当的摇晃效果,您可能希望设置一个非常低的值(例如0.02)。

completionHandler,如果不是null,是当摇晃完成时将会调用的块。

简单示例

UIView *view = ...; // Grab a view from somewhere
[view beginShakingWithOptions:SCShakeOptionsDirectionRotate | SCShakeOptionsForceInterpolationExpDown | SCShakeOptionsAtEndRestart | SCShakeOptionsAutoreverse force:0.15 duration:1 iterationDuration:0.03 completionHandler:nil];

选项

方向

方向影响摇晃效果的视觉效果。这里显示的所有值范围都是基于力值为1计算的。

SCShakeOptionsDirectionRotate: 视图将旋转从-90°到90°。

SCShakeOptionsDirectionHorizontal: 视图将在水平方向上从-框架宽度移动到+框架宽度。

SCShakeOptionsDirectionVertical: 视图将在垂直方向上从-框架高度移动到+框架高度。

SCShakeOptionsDirectionHorizontalAndVertical: 视图将随机在水平和垂直方向上移动。

力插值

力插值影响力随时间的变化。

SCShakeOptionsForceInterpolationNone: 力将始终保持您提供的力值。

SCShakeOptionsForceInterpolationLinearUp: 力将线性地从0变为您提供的力值。

SCShakeOptionsForceInterpolationLinearDown: 力将线性地从您提供的力值变到0。

SCShakeOptionsForceInterpolationExpUp: 力将指数变化从0变为您提供的力值。

SCShakeOptionsForceInterpolationExpDown: 力将指数变化从您提供的力值变到0。

SCShakeOptionsForceInterpolationRandom:力将与您提供的值在0之间随机变化。

结束时的操作

结束时的操作定义了震荡完成后应该发生什么。

SCShakeOptionsAtEndRestart:震荡将自动从开始处重新启动。

SCShakeOptionsAtEndComplete:震荡将停止。

SCShakeOptionsAtEndContinue:震荡将无限进行下去。当达到持续时间后,力量将不再改变。

其他选项

SCShakeOptionsAutoreverse:当震荡达到结束时,震荡将继续以相反的顺序进行。 设置此值将使实际上效的 持续时间 加倍。

Podfile

如果您正在使用cocoapods,可以使用以下Podfile使用此项目

pod "SCViewShaker", "~> 1.0.0"