隐式动画
2015-09-01 18:20
357 查看
1.每个UIView内部都默认关联着一个CALayer,称这个layer味Root Layer(根层)
2.所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画
3.当对非Root Layer的部分属性进行修改时,默认会自动产生一些动画效果,而这些属性称之为Animatable Properties(可动画属性)
4.可动画属性:
bounds:用于设置CALayer的宽度和高度。修改该属性会产生缩放动画
backgroundColor:用于设置CALayer的背景色,修改该属性会产生背景色渐变的效果
@property (nonatomic, weak) CALayer *layer;
CALayer *layer = [CALayer layer];
// 设置尺寸
layer.bounds = CGRectMake(0, 0, 100, 100);
// 颜色
layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:layer];
_layer = layer;
(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event
{ // 获取触摸点
UITouch *touch = [touches anyObject];
CGPoint pos = [touch locationInView:self.view];
// 开启事务
// [CATransaction begin];
// 取消隐世动画
// [CATransaction setDisableActions:YES];
// _layer.position = CGPointMake(100, 100);
// 设置边框
_layer.borderWidth = arc4random_uniform(5) + 1;
CGFloat r = arc4random_uniform(256) / 255.0;
CGFloat g = arc4random_uniform(256) / 255.0;
CGFloat b = arc4random_uniform(256) / 255.0;
// _layer.borderColor = [UIColor colorWithRed:r green:g blue:b alpha:1].CGColor;
// 设置背景颜色
_layer.backgroundColor = [UIColor colorWithRed:r green:g blue:b alpha:1].CGColor;
// 设置圆角半径
_layer.cornerRadius = arc4random_uniform(50);
// 设置位置
_layer.position = pos;
// 提交事务
// [CATransaction commit];
}
2.所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画
3.当对非Root Layer的部分属性进行修改时,默认会自动产生一些动画效果,而这些属性称之为Animatable Properties(可动画属性)
4.可动画属性:
bounds:用于设置CALayer的宽度和高度。修改该属性会产生缩放动画
backgroundColor:用于设置CALayer的背景色,修改该属性会产生背景色渐变的效果
@property (nonatomic, weak) CALayer *layer;
CALayer *layer = [CALayer layer];
// 设置尺寸
layer.bounds = CGRectMake(0, 0, 100, 100);
// 颜色
layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:layer];
_layer = layer;
(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event
{ // 获取触摸点
UITouch *touch = [touches anyObject];
CGPoint pos = [touch locationInView:self.view];
// 开启事务
// [CATransaction begin];
// 取消隐世动画
// [CATransaction setDisableActions:YES];
// _layer.position = CGPointMake(100, 100);
// 设置边框
_layer.borderWidth = arc4random_uniform(5) + 1;
CGFloat r = arc4random_uniform(256) / 255.0;
CGFloat g = arc4random_uniform(256) / 255.0;
CGFloat b = arc4random_uniform(256) / 255.0;
// _layer.borderColor = [UIColor colorWithRed:r green:g blue:b alpha:1].CGColor;
// 设置背景颜色
_layer.backgroundColor = [UIColor colorWithRed:r green:g blue:b alpha:1].CGColor;
// 设置圆角半径
_layer.cornerRadius = arc4random_uniform(50);
// 设置位置
_layer.position = pos;
// 提交事务
// [CATransaction commit];
}
相关文章推荐
- Internet of Lights and Switches(MAP记录+二分) 2015年湖南省赛第 I 题
- bzoj1027 [JSOI2007]合金
- ExtJS4学习--多表头Grid
- LoadRunner变量到参数的互换
- Hadoop运行wordcount出现“JobTracker is not yet RUNNING”
- ssh登陆慢的问题
- 十一届蓝狐杯的总结,顺带一点解题报告
- Golang开发环境LiteIDE的设置
- GitHub和SourceTree入门教程
- 打印九九乘法表
- webservice随记
- Java初学者都必须理解的六大问题
- 高质量 Android 开发框架 LoonAndroid 详解
- 移动端Retina屏实现1px的边框
- easyui 带复选功能的下拉菜单
- 云计算设计模式(二十四)——仆人键模式
- LoadRunner lr_eval_string() 函数使用及LR中变量、参数的简单使用
- cocos2dlua-图层
- StringBuffer总结
- 计算两个日期相差多少天