iOS 动画笔记 (二)
有它们俩你就够了!
说明:下面有些概念我说的不怎么详细,网上实在是太多了,说了我觉得也意义不大了!但链接都给大家了,可以自己去看,重点梳理学习写动画的一个过程和一些好的博客!
一:说说这两个三方库,Canvas 和 POP
这里有详细的说明了它们俩的优缺点,我们就不在粘贴复制浪费时间了,链接在下面!
下面先说说这两库的基本情况完了再说说他们的使用!
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 动画笔记 (二)的更多相关文章
- iOS 动画笔记 (一)
你也肯定喜欢炫酷的动画! 在APP中,动画就是一个点睛之笔!可以给用户增加一些独特的体验感,估计也有许多的和我一样的,看着那些觉得不错的动画,也就只能流口水的孩子,毕竟可能不知道从哪里下手去写!动画学 ...
- iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】
在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...
- iOS 学习笔记 二 (2015.02.26)
How To Use Git Source Control with Xcode in iOS 6 If you're new here, you may want to subscribe to m ...
- ios界面笔记(二)
1,在ios下实现checkbox的效果 主要思路是添加一个button,然后读取其isselected属性,分别添加不同的界面图片即可 具体实现如下: 2,解决两个window切换时消息无法送达 主 ...
- iOS开发笔记7:Text、UI交互细节、两个动画效果等
Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...
- ios 动画学习的套路 (二)
有它们俩你就够了! 说明:下面有些概念我说的不怎么详细,网上实在是太多了,说了我觉得也意义不大了!但链接都给大家了,可以自己去看,重点梳理学习写动画的一个过程和一些好的博客! (一) 说说这两个三方库 ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS 动画篇 (二) CAShapeLayer与CoreAnimation结合使用
接上一篇博客 iOS 动画篇(一) Core Animation CAShapeLayer是CALayer的一个子类,使用这个类能够很轻易实现曲线的动画. 先来一个折线动画效果: 示例代码: //1. ...
- 【Swift】iOS开发笔记(二)
前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯 ...
随机推荐
- P2615 神奇的幻方
P2615 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首 ...
- mysql初始化失败的问题
首先:my.ini 配置文件中 路径需要改成自己电脑mysql解压的路径. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- 使用WMI Filter 实现组策略的筛选!
今天接到一个客户的一个问题,提到需要分系统版本分发相应的MSI程序.比如简体版接受简体版的分发程序,繁体版接受繁体版的分发程序!这个建立组策略的不同版本分发本身不会太难,我们只需要建立两个不同组策略分 ...
- jsp运行机制
一.JSP机制概述 可以把执行JSP页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段. 转译阶段:JSP页面转换成Servlet类. 请求阶段:Servlet类执行,将响应结果发送至客户端. 1 ...
- [cocos2dx enhancement] CCPlatformMacros.h
为了更好的调试Log,优化CCLOG格式 path: cocos2dx/platform/CCPlatformMacros.h line 218: #define CCLOGERROR(format, ...
- 谈谈Python中元类Metaclass(一):什么是元类
简单的讲,元类创建了Python中所有的对象. 我们说Python是一种动态语言,而动态语言和静态语言最大的不同,就是函数和类不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个HelloW ...
- iOS App启动图不显示的解决办法.
1. 正常来说,启动图以及App图标需按照命名规则命名, 但是命名不规范并不影响显示; 2. 设置启动图的两种方法: (1) iOS 8—xcode 6 之后新出LaunchScreen.s ...
- Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能
现在扫描二维码已经很普遍,微信扫一扫即可,但是如果二维码是在自己的手机上呢?那就要用到微信里的一个功能了,手指长按二维码,会弹出自动识别的选项,点确定就可以看到二维码的内容了.那么怎么通过前端实现这个 ...
- HDU 5289 Assignment(二分+RMQ-ST)
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- linux系统初始化——启动脚本是如何工作的
启动脚本是如何工作的 Linux 使用的是基于 运行级(run-levels) 概念的称为 SysVinit 的专用启动工具.它在不同的系统上可能是完全不一样的,所以不能认为一个脚本在某个 Linux ...