有它们俩你就够了!

说明:下面有些概念我说的不怎么详细,网上实在是太多了,说了我觉得也意义不大了!但链接都给大家了,可以自己去看,重点梳理学习写动画的一个过程和一些好的博客!

一:说说这两个三方库,Canvas 和 POP

这里有详细的说明了它们俩的优缺点,我们就不在粘贴复制浪费时间了,链接在下面!

iOS动画库Pop和Canvas各自的优势和劣势是什么?

下面先说说这两库的基本情况完了再说说他们的使用!

Canvas -- iOS 动画库 :安装就在git上看就行,点前面的就能到git链接了,下图是安装说明:

顺便提提这个 Cocopods的问题,前几天我记得在哪看到过它做了一次重要的升级,我也是在用到 Canvas 的时候把它更新了一下,结果。。GG。 你在终端输 pod install 之后它就显示  pod: command not found 顺便就把这个解决的办法链接也给大家,能帮到一个小伙伴也是发挥了作用了!哈哈

升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法

还有一点,上面的终端命令好像是有问题的,我把自己的粘贴给大家!升级了Cocoapods的伙伴用上面终端命令没问题的,你在下面留言说一下,我改正,不能误导伙伴们。 这是我pod pop 和 Canvas 的终端命令;

target :'动画学习笔记' do

platform:ios,'7.0'

pod 'Canvas','~>0.1.2'

pod 'pop', '~> 1.0'

end

POP -- iOS动画引擎 其实这才是重点!

Pop is an extensible animation engine for iOS and OS X. In addition to basic static animations, it supports spring and decay dynamic animations, making it useful for building realistic, physics-based interactions. The API allows quick integration with existing Objective-C codebases and enables the animation of any property on any object. It's a mature and well-tested framework that drives all the animations and transitions in Paper.

上面是Pop的官方介绍。 大盖说的是pop是一个可扩展的动画引擎,提供基础的静态动画以及支持弹簧和衰减动画,用来构建高可用性的真实、物理特性的交互体验,使用OC作为基础,可用户扩展到任何的OC的Object的属性,是一个非常易于测试的框架,并且在Facebook自家的Paper上应用。

强烈建议!去它的Git官网去看看,你可以是养成一个去三方库的Git官网看的习惯,不管是它的安装还是基本的使用,官网其实都是由介绍的

(二) 说说他们怎么用

1. Canvas  最简单的一个例子,从下面往上面弹的动画,也就几行代码;

// 点击方法
-(void)buttonclick3
{ imageV = [[UIImageView alloc]init];
imageV.frame = CGRectMake(0, 0, 100, 100);
imageV.image = [UIImage imageNamed:@"cao"]; CSAnimationView * animionview = [[CSAnimationView alloc]initWithFrame:CGRectMake((self.view.bounds.size.width-100)/2, 200, 100, 100)];
animionview.backgroundColor = [UIColor whiteColor];
animionview.duration = 0.5;
animionview.delay = 0;
animionview.type = CSAnimationTypeBounceUp;// 从下到上
/**
可以在这里尝试各种各样的 type 试试!!
*
CSAnimationTypePop,
CSAnimationTypeMorph ,
CSAnimationTypeFlash ,
CSAnimationTypeShake ,
CSAnimationTypeFadeOut,
CSAnimationTypeFadeInLeft ,
CSAnimationTypeFadeInRight,
CSAnimationTypeFadeInDown ,
CSAnimationTypeFadeInUp ,
CSAnimationTypeSlideLeft,
CSAnimationTypeSlideRight,
CSAnimationTypeSlideDown ,
CSAnimationTypeSlideUp ,
CSAnimationTypeZoomIn,
CSAnimationTypeZoomOut ,
CSAnimationTypeSlideDownReverse ,
CSAnimationTypeBounceLeft,
CSAnimationTypeBounceRight,
CSAnimationTypeBounceDown,
CSAnimationTypeBounceUp,
CSAnimationTypeFadeIn,
CSAnimationTypeFadeInSemi ,
CSAnimationTypeFadeOutSemi ,
CSAnimationTypeFadeOutRight ,
CSAnimationTypeFadeOutLeft ,
CSAnimationTypePopDown ,
CSAnimationTypePopAlpha ,
CSAnimationTypePopAlphaUp ,
CSAnimationTypePopAlphaOut
*/
[self.view addSubview:animionview]; // Add your subviews into animationView
// 把自己的view添加到动画中去
[animionview addSubview:imageV]; /**
* 开始动画
*/
[animionview startCanvasAnimation]; }

砖丢完了给大家丢个玉: Canvas --高效的 iOS 动画库 看着这篇学习差不多也够了!

2.再看看POP这玩意!从1 到 2 的一个移动;

//点击事件
-(void)popclick
{ imageV = [[UIImageView alloc]init];
imageV.frame = CGRectMake(100, 100, 50, 50);
imageV.image = [UIImage imageNamed:@"cao"];
[self.view addSubview:imageV]; // POPBasicAnimation *anim = [POPBasicAnimation animationWithPropertyNamed:kPOPViewScaleY];
// anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
// anim.fromValue = @(0.0);
// anim.toValue = @(1.0);
// [imageV pop_addAnimation:anim forKey:@"fade"]; // POPSpringAnimation * animion = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPositionX];
// animion.springSpeed = 10;
// animion.toValue = @(imageV.bounds.origin.x + 200);
// animion.springBounciness = 10.0f;
// [imageV pop_addAnimation:animion forKey:@"kill"]; POPDecayAnimation * anDecay = [POPDecayAnimation animationWithPropertyNamed:kPOPLayerPositionX]; anDecay.velocity = @(imageV.bounds.origin.x + 300);
anDecay.beginTime = CACurrentMediaTime() + 1.0f;
[imageV pop_addAnimation:anDecay forKey:@"position"]; }

Pop上手体验(i-v)

Facebook Pop 使用指南

Facebook POP 进阶指南

     iOS动効-利用POP动画实现卡片切换动画

ios 动画学习的套路 (二)的更多相关文章

  1. iOS动画学习-视觉效果

    CALayer不仅仅是iOS动画学习-CALayer中介绍的那些内容,他还有一些其他属性,比如shadowColor,borderWidth,borderColor等等,这些属性我们只需要简单点设置就 ...

  2. iOS动画学习

    学习一下动画,感谢以下大神的文章:    UIView:基础动画.关键帧动画.转场动画 Core Animation :基础动画,关键帧动画,动画组,转场动画,逐帧动画 CALayer :CALaye ...

  3. iOS 动画学习

    图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命 ...

  4. iOS动画学习-CALayer

    iOS中有很多方法可以实现动画,我们可以用CAKeyframeAnimation, CABasicAnimation,CASpringAnimation(iOS9.0中添加的,实现弹簧的效果),也可以 ...

  5. iOS 动画学习之视图控制器转场动画

    一.概述 1.系统会创建一个转场相关的上下文对象,传递到动画执行器的animateTransition:和transitionDuration:方法,同样,也会传递到交互Controller的star ...

  6. iOS动画学习 -隐式动画

    事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.你并不需要在Core Animation中手动打开动画,但是你需要明确地关闭它,否则它会一直存在. 当你改变 ...

  7. iOS动画详解(二)

    UIImage常用的绘图操作   一个UIImage对象提供了向当前上下文绘制自身的方法.我们现在已经知道如何获取一个图片类型的上下文并将它转变成当前上下文.   平移操作:下面的代码展示了如何将UI ...

  8. iOS 动画笔记 (一)

    你也肯定喜欢炫酷的动画! 在APP中,动画就是一个点睛之笔!可以给用户增加一些独特的体验感,估计也有许多的和我一样的,看着那些觉得不错的动画,也就只能流口水的孩子,毕竟可能不知道从哪里下手去写!动画学 ...

  9. iOS 动画笔记 (二)

    有它们俩你就够了! 说明:下面有些概念我说的不怎么详细,网上实在是太多了,说了我觉得也意义不大了!但链接都给大家了,可以自己去看,重点梳理学习写动画的一个过程和一些好的博客! 一:说说这两个三方库,C ...

随机推荐

  1. Android面试题随笔1

    1.如何让一个应用在手机上产生两个或多个图标? 在清单文件中的activity节点下配置如下:[5,7行代码] <activity android:name=".MainActivit ...

  2. PHP的Cookie、Session和跟Laravel相关的几点了解

    这两天通过对Cookie和Session的查找和了解,网上关于它们两个的基础知识点都是差不多的,也收藏了几篇不错的博客,同时自己做了些实验后,有了以下几点了解: 1.setcookie 这里有三个地方 ...

  3. HMC5883L地磁传感器驱动

    霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域.HMC5883L 包括最先进的高分辨率 HMC118X 系列磁阻传感器,并附带霍 ...

  4. ADXL345加速度传感器驱动

    ADXL345 是 ADI 公司的一款 3 轴.数字输出的加速度传感器.ADXL345 是 ADI 公司推 出的基于 iMEMS 技术的 3 轴.数字输出加速度传感器.该加速度传感器的特点有:    ...

  5. 【转】10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  6. webstorm 激活码

    WebStorm 2016 最新版激活(activation code方式) 注册时,在打开的License Activation窗口中选择“activation code”,在输入框输入下面的注册码 ...

  7. Collections笔记

    Colletion是集合接口 Collections是集合工具类,是一个类哈! public class CollectionsTest { public static void main(Strin ...

  8. IOS开发中各种型号的分辨率及软件图标的制作

    IOS中各手机的分辨率为: 5.5寸: 1242*2208;4.7寸: 750*1334;4.0寸: 640*1136;3.5寸: 640*960; 软件的图标有以下需求(注意选中右侧红色框中这一条) ...

  9. 在Eclipse中配置tomcat

    为了在Eclipse中进行struts2的测试,才发现自己机器上的Eclipse没有集成Tomcat,在网上找了半天,不是这个插件没有下载地址,就是那个有好多注意事项或者版本问题. 结果,自己到tom ...

  10. GB和GBDT 算法流程及分析

    1.优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回归树,依 ...