ios旋转动画

iOS核心动画详解(CABasicAnimation)

心不动则不痛 提交于 2020-04-07 09:00:29
前言   上一篇已经介绍了核心动画在UI渲染中的位置和基本概念,但是没有具体介绍CAAnimation子类的用法,本文将介绍CABasicAnimation及其子类CASpringAnimation的用法和一些注意事项。 一、CABasicAnimation 1.什么是CABasicAnimation   CABasicAnimation是核心动画类簇中的一个类,其父类是CAPropertyAnimation,其子类是CASpringAnimation,它的祖父是CAAnimation。它主要用于制作比较单一的动画,例如,平移、缩放、旋转、颜色渐变、边框的值的变化等,也就是将layer的某个属性值从一个值到另一个值的变化。类似x -> y这种变化,然而对于x -> y -> z甚至更多的变化是不行的。 2.常用属性   @property(nullable, strong) id fromValue;   @property(nullable, strong) id toValue;   @property(nullable, strong) id byValue;   很明显,fromvalue表示初始状态,tovalue表示最终状态,byvalue是在fromvalue的基础上发生的变化,这个可以慢慢测试,主要还是from和to。 3.实例化方法   +

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

£可爱£侵袭症+ 提交于 2020-04-07 06:41:58
原文出处: wu大维 动效设计一直是iOS平台的优势,良好的动效设计可以很好地提升用户体验。而动画则是动效的基础支撑。本动画将从易到难逐步分析,从CABasicAnimation,UIBezierPath,CAShapeLayer三个方面完整的阐述iOS动画的实现。最终的效果如下: 例子来源与网络,不是我写的,我只是加上了详细的注释,方便大家理解(我只是代码的搬运工...)。这个例子是CABasicAnimation,UIBezierPath,CAShapeLayer的综合实现,如果能完全理解这个例子,相信其它的iOS动画也难不倒你了。 demo下载地址 CABasicAnimation 一、概念 这个部分你需要了解以下概念: CALayer、CAAnimation、CAAnimationGroup 1、CALayer CALayer是个与UIView很类似的概念,同样有backgroundColor、frame等相似的属性,我们可以将UIView看做一种特殊的CALayer。但实际上UIView是对CALayer封装,在CALayer的基础上再添加交互功能。UIView的显示必须依赖于CALayer。我们同样可以跟新建view一样新建一个layer,然后添加到某个已有的layer上,同样可以对layer调整大小、位置、透明度等。一般来说,layer可以有两种用途

ios之CABasicAnimation

元气小坏坏 提交于 2020-04-04 22:31:44
博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家学习。 原帖地址: http://www.objectivec-iphone.com/animation/CoreAnimation/CABasicAnimation.html 本文为博主翻译,若需转载,请注明出处: http://blog.csdn.net/iosevanhuang/article/details/14488239 CABasicAnimation类的使用方式就是基本的关键帧动画。 所谓关键帧动画,就是将Layer的属性作为KeyPath来注册,指定动画的起始帧和结束帧,然后自动计算和实现中间的过渡动画的一种动画方式。 CABasicAnimation的基本使用顺序 1.引用QuartzCore.framework 将"QuartzCore.framework"这个库添加到项目中。并且在需要使用CABaseAnimation类的地方import头文件。 [objc] view plain copy #import <QuartzCore/QuartzCore.h> 2.CABaseAnimation的实例化以及关键路径的注册 使用

iOS动画

旧时模样 提交于 2020-04-04 19:17:27
===================================================================== iOS中有一种动画叫序列帧动画。把一系列图片放在数组中,通过播放图片产生动画效果。 ================================================================= //播放动画的方法 -(void)startMyAnimat:(NSInteger)count name:(NSString*)name{ //判断当前是否有动画在播放 if (self.tomImage.isAnimating) return; //创建一个不可变的数组用于接收需要播放的图片 NSMutableArray* animatArray = [NSMutableArray array]; //通过循环给数组赋值 for (int i = 0; i<count; i++) { //设置图片名字 NSString* imageName = [NSString stringWithFormat:@"%@_%02tu",name,i]; //设置图片地址 NSBundle* bundle = [NSBundle mainBundle]; NSString* path = [bundle pathForResource

隐式动画和核心动画

旧巷老猫 提交于 2020-04-04 18:53:33
1. 隐式动画,只有非根层的CALayer才有隐式动画,即改变图层的属性的时候,比如大小,颜色等,会自动添加一个颜色效果, 根层:控件里面的CALayer 非根层:自己创建的CALayer,不依附控件存在的CALayer 隐式动画的使用场景不多 2. 核心动画: Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation可以用在Mac OS X和iOS平台。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity、position、transform、bounds、contents等,通过调⽤用CALayer的addAnimation:forKey增加动画到层(CALayer)中,这样就能触 发动画了。 CAAnimation的继承结构如下: 注意: 这个核心动画仅仅是一个效果,动画结束之后并不保存动画结束之后的值,要想保存动画结束之后的值,两种方案 1.使用animationstop方法(CAAnimation的代理方法)

图层与核心动画

我们两清 提交于 2020-04-04 18:52:47
一、理解图层与UIView的关系 1.UIView能显示在屏幕上,是因为里面有个图层,UIView的DrawRect方法,会将绘制的东西绘在图层上,当要显示的时候,将图层拷贝到屏幕上进行显示 二、CALayer的基本属性 1.尺寸(bounds) 2.背影颜色(backgroundColor) 3.位置(position) 4.边框颜色(borderColor)、边框长度(borderWidth) "配合使用才有效果" 5.圆角(cornerRadius) 6.内容对象(contents) 通常设置图片, *如果要显示圆角效果,必须设置图层的masksToBounds为YES,意思是把多余的剪切掉 7.阴影属性 *阴影颜色(shadowColor)、阴影透明度(shadowOpacity) "要配合使用才有效果" *阴影起始位置(shadowOffset) *如果图片添加了圆角并设置了剪切掉多余的部分,阴影效果不会出现 *如果又想图片有圆角效果,又想有阴影,那图片只能是本来就有圆角效果的,不用代码设置 8. transform(CATransform3D)属性 *缩放CATransform3DMakeScale *旋转CGAffineTransformMakeRotation,理解xyz方向的意思 *平移CATransform3DMakeTranslation

iOS开发UI篇—核心动画(转场动画和组动画)

我们两清 提交于 2020-04-04 18:48:25
一、转场动画简单介绍 CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点 UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果 属性解析: type:动画过渡类型 subtype:动画过渡方向 startProgress:动画起点(在整体动画的百分比) endProgress:动画终点(在整体动画的百分比) 二、转场动画代码示例 1.界面搭建 2.实现代码 1 // 2 // YYViewController.m 3 // 13-转场动画 4 // 5 // Created by apple on 14-6-21. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import "YYViewController.h" 10 11 @interface YYViewController () 12 @property(nonatomic,assign) int index; 13 @property (weak, nonatomic) IBOutlet UIImageView *iconView; 14 15 - (IBAction)preOnClick:

Core Animation(核心动画)

走远了吗. 提交于 2020-03-20 21:23:57
iOS开发UI篇—核心动画简介 一、简单介绍 Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。 Core Animation是跨平台的,可以用在Mac OS X和iOS平台。 Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。不阻塞主线程,可以理解为在执行动画的时候还能点击(按钮)。 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。 二、Core Animation的使用步骤 1.使用它需要先添加QuartzCore.framework框架和引入主头文件<QuartzCore/QuartzCore.h>(iOS7不需要) 2.初始化一个CAAnimation对象,并设置一些动画相关属性 3.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画了 4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画 三、CAAnimation 类的继承结构图    CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类。 常见属性有:

iOS -- 开源项目和库

為{幸葍}努か 提交于 2020-03-02 05:48:27
TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 其他动画 网络相关 网络连接 图像获取 网络聊天 网络测试 网页框架 WebView与WKWebView Model 通讯录 其他库 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 消息推送客户端 消息推送服务器端 通知相关 版本新API的Demo 代码安全与密码 测试及调试 动态更新 AppleWatch 完整项目 好的文章 VPN Xcode插件 美工资源 开发资源 开发资料 swift 他人开源总结 开发博客列表 ======== 具体内容 ============================= ======== UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。 SVPullToRefresh - 下拉刷新控件。 MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性

iOS核心动画笔记4-图形几何学

半腔热情 提交于 2020-03-01 02:51:26
图层几何学 1. 布局 UIView有三个比较重要的属性: frame, bounds, center. CALayer对应的叫做: frame,bounds,position. frame代表图层外部坐标, bounds是内部坐标. 视图的frame, bounds, center属性仅仅是存取方法, 当操作视图的frame时候,实际上是改变位于视图下方CALayer的frame, 不能独立于图层之外改变视图的frame. 对于视图和图层来说, frame并不是一个非常清晰的属性,他其实是一个虚拟的属性, 是根据bounds, position和transform计算而来的, 当其中任意一值发生变化, frame都会变化, 同样的, frame也会影响到他们当中的值. 当图层做变换时候, 比如旋转或者缩放, frame实际上代表的是覆盖在图层旋转之后的整个轴对称对齐的矩形区域, 就是说, frame和bounds宽高不再保持一致. 2. 锚点 anchorPoint默认位于图层的中点, 所以图层将会以这个点为中心放置. 图层的anchorPoint是可以被移动的, 比如当把它置于图层frame的左上角, 于是图层内容将会向右下角的Position方向移动. anchorPoint也使用单位坐标来描述. 当改变anchorPoint时候, Position属性保持固定,