标签:
一. 简介
1.CALayer一般作为UIView的容器
2.是一个管理图片载体的层架构
3.直接修改创建的CALayer可以触发隐藏动画
4.UIView的CALayer动画必须显示触发
二. 应用
1.修改uiview的layer相当于直接修改uiview,例如
UIView *test = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; test.layer.frame = CGRectMake(100, 100, 200, 200); test.layer.backgroundColor = [UIColor redColor].CGColor; [self.view addSubview:test]; NSLog(@"%f %f",test.frame.size.width, test.frame.size.height); // 结果打印为修改后的属性值200 200
2.修改创建的calayer可以触发隐藏动画
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 创建自定义的View
UIView *contain = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 4)];
contain.layer.borderWidth = 1; // 显示边框
// 自定义layer,只有自己创建的layer才自动创建动画效果
_layer = [[CALayer alloc] init];
_layer.frame = CGRectMake(0, 0, 0, 4);
_layer.backgroundColor = [UIColor redColor].CGColor;
// 加入layer
[contain.layer addSublayer:_layer];
[self.view addSubview:contain];
// 3秒后执行修改动作
[self performSelector:@selector(changelayer) withObject:nil afterDelay:3.0f];
}
// 修改属性,自动触发隐藏动画
- (void)changelayer {
_layer.frame = CGRectMake(0, 0, 50, 4); // 显示一半
}
标签:
原文地址:http://my.oschina.net/littleDog/blog/476605