一. 简介
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); // 显示一半 }
时间: 2024-10-13 22:50:14