ios 动画学习的套路 (二)

有它们俩你就够了!

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

(一) 说说这两个三方库,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也就够了!

Pop上手体验(i-v)

Facebook Pop 使用指南

Facebook POP 进阶指南

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

时间: 2024-10-12 00:52:56

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

IOS开发学习笔记(二)-语音识别(科大讯飞)

上次简单地讲解了如何利用科大讯飞完成语音合成,今天接着也把语音识别整理一下.当然,写代码前我们需要做的一些工作(如申请appid.导库),在上一篇语音合成的文章当中已经说过了,不了解的可以看看我上次的博文,那么这次直接从堆代码开始吧. 详细步骤: 1.导完类库之后,在工程里添加好用的头文件.在视图里只用了一个UITextField显示识别的内容,两个UIButton(一个开始监听语音,一个结束监听),然后引入类.添加代理,和语音合成的一样. MainViewController.h 1 #imp

iOS 动画学习

图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角. Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存

ios 动画学习(-)UIView 自带动画

ios 开发中,一些常用的简单的动画可以用 uivew 自带的动画来是实现 今天就学习下 UIVIew 一些常用的动画 1. // 翻转的动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationDuration:1]; //设置动画淡入淡出 [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //设置代理 [UIView s

魏兆辉的IOS基础学习笔记之二 C语言基础-02

1. typedef 在前文中,我们用宏定义来定义了一个BOOL类型,那么现在就用更专业的方式来定义类型. typedef int Bool; int main (void){ Bool flag=1; if(flag) { printf("True"); } else { printf("false"); }} typedef 的作用就是类型定义(Type Definition). 类型定义有以下三个优点: 1. 易于阅读.比如我们可以把定义一个Dollar,然后

iOS动画详解(学习动画看这一篇就够了)

iOS动画详解(学习动画看这一篇就够了) 一.基础知识 CAAnimation.png 二.CABasicAnimation 1. 动画的属性和解释 2.属性值的解释 repeatCount : 如果在swift中需要一直不断重复:Float.infinity,OC:HUGE_VALF timingFunction: timingFunction.png kCAMediaTimingFunctionLinear--在整个动画时间内动画都是以一个相同的速度来改变.也就是匀速运动.一个线性的计时函数

IOS开发学习笔记-(3) 进度条、等待动画开始停止

一.创建对应空间视图  ,如下图: 二.编写对应的 .h 代码,如下 : #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activWaitNetWork; @property (weak, nonatomic) IBOutlet UIProgressView *pgrsDownLo

IOS图层Layer学习笔记(二)—— CALayer(上)

IOS图层Layer学习笔记(二)-- CALayer(上) 简介 CALayer是所有图层的基类.主要是一些基本显示属性(位置.锚点.颜色.透明度等).层次关系(子图层和父图层).基本动画等. 接下来分别从常用属性.类方法和实例方法来介绍CALayer的使用.顺序是按头文件的排序来. 常用属性 bounds CGRect,Animatable.控制layer的大小,其中x和y无效果,默认是(0,0). position CGPoint,Animatable.控制layer锚点在父图层的位置.

《iOS应用逆向工程》学习笔记(二)iOS系统目录结构(部分)

首先下载个iFile,可以用来直观地查看iOS系统的目录结构. 下面记录一些关键的iOS目录结构: /var:"variable"的简写,存放一些经常更改的文件,例如日志.用户数据.临时文件等.其中/var/mobile/Applications下存放了所有App Store App. /Applications:存放所有的系统App和来自Cydia的App,不包括App Store App.越狱的过程把/Applications变成了一个符号链接,实际指向/var/stash/App

iOS核心动画学习整理

最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一些知识做了相应的整理,整理为demo(https://github.com/PurpleSweetPotatoes/Layer_learn).此demo中都是基于教程书籍中的编程示例,并加上了注解以方便各位iOS爱好者学习使用. 在这里利用此教程中的基础知识做了2个小demo,活动指示器效果和火焰效