三 iOS之 CALayer的隐式动画
隐式动画
- 什么是图层的隐式动画?
- 当我们修改CALayer的一些属性,我们可以发现它会有类似动画效果一样的变化,这是图层独有的特性。
- 这样的特性UIView是没有的,当修改UIView的图层属性,会是很生硬的变化,达不到动画的效果。
示例演示
示例图
- 核心代码 ViewController.m
#import "ViewController.h"
//转换角度
#define angle2radion(angle) ((angle) / 180 * M_PI)@interface ViewController ()
@property(nonatomic,weak)CALayer * layer;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];CALayer * layer = [CALayer layer];//layer的位置layer.position = CGPointMake(200, 150);//大小layer.bounds = CGRectMake(0, 0, 80, 80);//背景颜色layer.backgroundColor = [UIColor redColor].CGColor;// layer.contents = (id)[UIImage imageNamed:@"bbb"].CGImage;[self.view.layer addSublayer:layer];_layer = layer;//scheduled... 这个方法自动将定时器加入runLoop[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(change) userInfo:nil repeats:YES];}-(void)change
{NSLog(@"%s",__func__);//旋转角度的变化,以z轴为轴_layer.transform = CATransform3DMakeRotation(angle2radion(arc4random_uniform(360)+1), 0, 0, 1);//位置变化_layer.position = CGPointMake(arc4random_uniform(200)+20, arc4random_uniform(400)+50);//圆角变化_layer.cornerRadius = arc4random_uniform(40);//背景颜色变化_layer.backgroundColor = [self arcColor].CGColor;//边框变化_layer.borderColor =[self arcColor].CGColor;_layer.borderWidth = 10;}/**颜色随机*/
-(UIColor*)arcColor
{CGFloat r = arc4random_uniform(256) / 255.0;CGFloat g = arc4random_uniform(256) / 255.0;CGFloat b = arc4random_uniform(256) / 255.0;return [UIColor colorWithRed:r green:g blue:b alpha:1];
}@end
三 iOS之 CALayer的隐式动画相关推荐
- iOS边练边学--CALayer,非根层隐式动画,钟表练习
一.CALayer UIView之所以能显示在屏幕上,完全是因为他内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性 ...
- IOS开发CALayer隐式动画
2019独角兽企业重金招聘Python工程师标准>>> 每一个自定义的layer都存在默认的隐私动画,隐式动画默认为1/4秒 @interface DYViewController ...
- CALayer的使用(圆形头像 锚点 边框 阴影 形变 隐式动画 )
CALayer简介和一些基本概念: 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView.其实UIView之所以能显 ...
- CoreAnimation —— CATransaction(隐式动画)
2019独角兽企业重金招聘Python工程师标准>>> 当你改变`CALayer`的一个可做动画的属性,它并不能立刻在屏幕上体现出来.相反,它是从先前的值平滑过渡到新的值.这一切都是 ...
- 动画总结 Core Animation 贝赛尔曲线 显式动画 隐式动画
Core Animation 接下来详细介绍下动画的各个属性及作用 fromValue: 动画的开始值(Any类型, 根据动画不同可以是CGPoint.NSNumber等) toValue: 动画的结 ...
- Flutter 动画全解析(动画四要素、动画组件、隐式动画组件原理等)
本文通过拆解 Flutter 中动画的实现方式以及原理来介绍动画实现的整个过程. 1. 动画四要素 动画在各个平台的实现原理都基本相同,是在一段时间内一系列连续变化画面的帧构成的.在 Flutter ...
- flutter 隐式动画
前言 隐式动画简单来说就是用 setState 就能呼唤出来的动画.对于实现了隐式动画的组件,只要Widget被更新,那么一个过渡动画就会自动产生并且播放. 隐式动画和显示动画的区别? 1,隐式动画是 ...
- iOS:CALayer核心动画层
CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView, ...
- iOS动画进阶(八)显式动画
显式动画 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念.隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动 ...
最新文章
- javacurrentmap_Java集合---ConcurrentHashMap原理分析
- tomcat启动后如何登录
- 音视频技术:视频质量评价方法简介
- HDU 1166(线段树)
- pythonsqlite3教程_使用 Python 在线操作 sqlite3
- hbase java 端口_HBase远程Java客户端尝试通过随机端口进行身份验证
- java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎
- pta函数统计素数并求和_关于求和的4种函数公式,此文讲透了,尤其是第4种,绝对的高效...
- 循环数组对象 php,PHP循环遍历stdClass对象的数组
- c语言数据转移,重温C语言(2)之数据
- 解决Django文件表单验证forms.FileField(required=True),总是无法通过验证:这个字段是必填项
- 入驻商户卖隐形眼镜护理液 饿了么遭监管警告
- jQuery仿京东首页广告图片切换图片轮播
- 详解:MapReduce 思想解析
- java 的clean code 技巧
- Java中IO流有哪些
- 校招行测笔试--资料分析
- 赛式方法论:为什么你的游戏做不完、做得烂?
- mex文件用matlab能打开吗,MATLAB通过mex文件调用C/C++程序
- 【Hive】Hive锁机制分析及任务问题处理