介绍一下开源项目FastAnimationWithPOP

JUL 23RD, 2014

这是一个非常easy的动画框架,基于Facebook的POP库。

使用它你就能够在故事版中以0行代码的代价来加入动画了。

Github上地址是 这里.

你能够从这里下载DEMO查看效果.

假设你认为不错,欢迎在到这里点个赞,方便让很多其它人注意到它

功能

  • 使用属性来加入一个动画到随意的View。

  • 在nib或者故事版唤醒时自己主动运行动画。

  • 也能够随时手动运行动画。
  • 控制动画的细节。
  • 给control绑定一些动画。比如按下松开等状态。
  • 轻松的扩展新的动画,仅仅须要实现FastAnimationProtocol、ControlFastAnimationProtocol 和 FastAnimationReverseProtocol这几个协议.

环境要求

iOS SDK: iOS 6.0+

XCode版本号: 5.0+

怎样安装

最好的办法是使用CocoaPods:

  1. 加入这行到你的podfile文件 pod
    'FastAnimation'

  2. 安装更新 pod
    install

假设想要尝试最新的版本号。你能够加入这个pod
'FastAnimation', :head
.

使用指导

1. 在故事板里使用

你能够通过设置用户自己定义执行时属性(user defined runtime attributes)给View加入一个动画。

以下是一些属性的含义:

UIView的属性

  • animationType

    通过这个属性来指定动画的类型,能够是完整的类名,也能够省略FAAnimation前缀.

  • delay

    运行动画的延时。以秒为单位。

  • animationParams

    这个是各个动画的灵活參数。你能够从动画类的头文件里找到信息,比如以下:

1
2
3
4
5
#define kSpringBounciness   (@"animationParams.springBounciness")
#define kSpringSpeed (@"animationParams.springSpeed")
#define kDynamicsTension (@"animationParams.dynamicsTension")
#define kDynamicsFriction (@"animationParams.dynamicsFriction")
#define kDynamicsMass (@"animationParams.dynamicsMass")
  • startAnimationWhenAwakeFromNib

    定义是否须要在故事板唤醒的时候就运行动画,默认是YES。

UIControl的属性

  • bindingAnimationType

    通过这个属性来指定控件动画的类型。能够是完整的类名。也能够省略FAAnimation前缀.

2. 代码写View的应用

在代码写View中使用FastAnimation相同方便。

你能够设置动画类型等属性。然后运行-
(void)startFAAnimation
就可以。就像这样:

1
2
3
4
5
6
7
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view.backgroundColor = [UIColor redColor];
view.animationType = @"Shake";
view.animationParams[@"velocity"] = @-7000;
// You can also set params like this
// [view setValue:@-7000 forKeyPath:kShakeVelocity];
[view startFAAnimation];

还有这些扩展的使用方法:

1
2
3
4
5
6
// In UIView instance.
- (void)startFAAnimation;
- (void)reverseFAAnimation;
// In UIControl instance.
- (void)bindingFAAnimation;
- (void)unbindingFAAnimation;

3. 定义一个新的动画扩展

轻松的扩展新的动画,仅仅须要实现FastAnimationProtocol、ControlFastAnimationProtocol 和 FastAnimationReverseProtocol这几个协议.

就像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// new_animation.h
@interface FAAnimationNewAnimation : NSObject<FastAnimationProtocol,
FastAnimationReverseProtocol> // Maybe only FastAnimationProtocol @end
// new_animation.m
@implementation FAAnimationBounceRight + (void)performAnimation:(UIView *)view
{
// some thing you like.
} + (void)stopAnimation:(UIView *)view
{
// some thing you like.
} + (void)reverseAnimation:(UIView *)view
{
// some thing you like.
} + (void)stopReverse:(UIView *)view
{
// some thing you like.
}
@end

4. 一些控制动画的操作

  • 停止动画:

假设想要手动体制。使用以下的方法:

1
2
- (void)stopFAAnimation;
- (void)stopReverseFAAnimation;
  • 嵌套动画:

使用例如以下方法处理嵌套:

1
2
3
4
- (void)startFAAnimationNested;
- (void)stopFAAnimationNested;
- (void)reverseFAAnimationNested;
- (void)stopReverseFAAnimationNested;

眼下已经拥有的动画:

  • 反弹动画(4方向): BounceLeft,BounceRight,BounceUp,BounceDown
  • 放大动画(2方向):ZoomInX,ZoomInY
  • 颤动动画
  • 组动画
  • 放大动画
  • Button的放大效果绑定
  • 很多其它的动画等着大家的贡献哟。

下一步要做的事

  • 把DEMO和库项目和到同一个Workspace里。

  • 制作很多其它更好看的DEMO。

  • 假如便捷的转场动画。眼下先设法支持iOS7+
  • 确保全部的功能都含有单元測试。

  • 很多其它更好的动画。
  • 把核心部分和效果部分分离,效果依照iOS5 6 7+来打成不同的包.
  • 支持Swift写扩展.

Posted by 臧成威 Jul
23rd, 2014

介绍一下开源项目FastAnimationWithPOP的更多相关文章

  1. 给各位聚聚和大大介绍一个开源项目 Expression2Sql(转)

    阅读目录 一.Expression2Sql介绍 二.单表简单查询 三.Where条件 四.多表关联查询 五.group by 六.order by 七.函数 八.delete 删除 九.update ...

  2. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  3. GitHub上史上最全的Android开源项目分类汇总

    今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...

  4. 用开源项目SwitchButton实现各种风格的switch

    今天介绍的开源项目是否的优秀,又是国人的作品.之前我接触过很多很多的自定义switch,有些动画僵硬,有些不能自定义switch的宽度,有些只能定义宽度不能设置滑块的宽高.但,这个项目提供了各种定制的 ...

  5. Android 上传开源项目到 jcenter 实战踩坑之路

    本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...

  6. Equinox开源项目CQRS架构分析

    CQRS架构下Equinox开源项目分析 一.DDD分层架构介绍 本篇分析CQRS架构下的Equinox开源项目.该项目在github上star占有2.4k.便决定分析Equinox项目来学习下CQR ...

  7. Android开源项目分类汇总-转载

    太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参 ...

  8. 开源项目|Go 开发的一款分布式唯一 ID 生成系统

    原文连接: 开源项目|Go 开发的一款分布式唯一 ID 生成系统 今天跟大家介绍一个开源项目:id-maker,主要功能是用来在分布式环境下生成唯一 ID.上周停更了一周,也是用来开发和测试这个项目的 ...

  9. 支持中文!秒建 wiki 知识库的开源项目,构建私人知识网络

    不知道有没有人和我一样,觉得自建的东西是互联网上的"自留地".私人空间,有一种自己的一亩三分地随心所欲的痛快. 比如自建的博客想写什么随笔就写什么,不用取悦读者可以自娱自乐:再比如 ...

随机推荐

  1. 如何学习React--[转]

    如果你是一个 React (或者前端) 新手, 出于以下的原因, 你可能会对这个生态圈感到困惑: React 的目标群体历来是喜欢尝试新事物的开发者和前端专家. Facebook 只开源了他们在实际使 ...

  2. 关于文件格式Fuzzing测试与漏洞挖掘的学习

    最近对于文件的漏洞挖掘比较感兴趣,所以在找资料来看.顺带记录笔记,把这些笔记贴在博客中分享一下.最近打算把精力放在mp3格式的漏洞发掘上,一来这是常见的文件格式格式也比较清晰.二来这也是学长推荐的入手 ...

  3. java 基础类库之 FormatFun

    package com.exjor.webdemo; import java.text.SimpleDateFormat; import java.util.Date; public class Fo ...

  4. Rookey.Frame之实体FluentValidation验证

    昨天给大家介绍了Rookey.Frame框架的实体设计,今天继续跟大家分享实体的FluentValidation验证,在Rookey.Frame框架中可以设置多种验证方式:FluentValidati ...

  5. spring boot配置文件中 spring.mvc.static-path-pattern 配置项

    spring boot项目中的静态资源文件存放在static文件下面,当通过浏览器访问这些静态文件时,发现必须要添加static作为前缀才能访问,折腾了一番后发现,这个前缀跟 spring.mvc.s ...

  6. ab性能测试工具

    Apache自带的压力测试工具——ab初体验 http://studiogang.blog.51cto.com/505887/386852 我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的L ...

  7. TradingView 为 k 线柱添加标记

    看别人翻译的开发文档: 开发文档地址:https://zlq4863947.gitbooks.io/tradingview/ getMarks(symbolInfo, startDate, endDa ...

  8. 洛谷P1527 [国家集训队] 矩阵乘法 [整体二分,二维树状数组]

    题目传送门 矩阵乘法 题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入输出格式 输入格式: 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共N* ...

  9. 子查询中的NULL问题

    子查询返回有单行,多行和null值:适用于单行子查询的比较运算符是=,>,>=,<,<=<>和!=.适用于多行子查询的比较运算符是in,not in,any和any ...

  10. Elasticsearch源码分析 | 单节点的启动和关闭

    本文主要简要介绍Elasticsearch单节点的启动和关闭流程.Elasticsearch版本:6.3.2 相关文章 1.Google Guice 快速入门 2.Elasticsearch 中的 G ...