介绍一下开源项目FastAnimationWithPOP

JUL 23RD, 2014

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

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

Github上地址是 这里.

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

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

功能

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

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

  • 也能够随时手动运行动画。
  • 控制动画的细节。
  • 给control绑定一些动画。比如按下松开等状态。
  • 轻松的扩展新的动画,仅仅须要实现FastAnimationProtocolControlFastAnimationProtocol 和 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. 定义一个新的动画扩展

轻松的扩展新的动画,仅仅须要实现FastAnimationProtocolControlFastAnimationProtocol 和 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. ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件

    ASP .NET Core MVC 发布到  IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...

  2. java基础25 线程的常用方法、线程安全问题、死锁现象

    一.线程的常用方法 1.Thread(String name):初始化线程的名字2. setName(String name):设置线程的名字3. getName():返回线程的名字4. sleep( ...

  3. CF401D 【Roman and Numbers】

    题意将n(n<=10^18)的各位数字重新排列(不允许有前导零)  求  可以构造几个mod m等于0的数字解法状压f[S][k] 表示选用的位数集合为S,mod m 为k的方案数注意不能有前导 ...

  4. Ubuntu 14.04 16.04 Linux nvidia 驱动下载与安装

    Ubuntu 14.04 16.04 nvidia 驱动安装 最简单直观的方式是在如下的对话框中直接选择驱动安装即可 但是有时候,驱动不够新,比如14.04用的是340.98版本,如果手动安装驱动可以 ...

  5. SQL行列转换的另一种方法

    create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)insert into tb values('张三' , '语文' , 74)inse ...

  6. HttpService与WebService的差异

    httpservice通过post和get得到你想要的东西webservice就是使用soap协议得到你想要的东西,相比httpservice能处理些更加复杂的数据类型 当你要调用一个你本服务的内容的 ...

  7. Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException

    org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean ...

  8. 005 爬虫(requests与beautifulSoup库的使用)

    一:知识点 1.安装requests库 2.Brautiful soup 可以提供一些简单的,python式的函数来处理导航,搜索,修改分析树等功能. 她是一个工具箱,通过解析文档为用户提供需要抓去的 ...

  9. 授权中的with admin option和with grant option

    oracle: 当给一个用户授予系统权限时带上with admin option,他可以把此权限授予给其他用户.角色,而在revoke授予给这个用户的系统权限时不会级联回收他授予给其他用户的权限.如授 ...

  10. Android Studio奇技淫巧

    No1: Ctrl+E:显示最近浏览过的文件 Ctrl+Shift+E:显示最近编辑过的文件 Ctrl+Tab:切换最近编辑过的文件 No2: 条件断点:断点右键 No3: 全局断点 这样只要碰到空指 ...