UIView和layer的关系

时间:2023-03-09 01:00:35
UIView和layer的关系

UIViewlayer的关系

UIView是layer的代理

View的根layer ---也就是说view本身自带一个layer, 这个layer 我们叫它根layer

所有视图显示是因为继承UIview  但真正显示的是layer

UIView和layer的关系图

UIView和layer的关系

CALayer来源于QuartzCore框架

Core Animayion相对更底层.

UIView 是更高层的封装.

CALayer 属性:

设置颜色

tempView.layer.backgroundColor = [UIColor redColor].CGColor;

设置边框

tempView.layer.borderColor = [UIColor orangeColor].CGColor;

tempView.layer.borderWidth = 5;

圆角

tempView.layer.cornerRadius = 10;

设置阴影

tempView.layer.shadowColor = [UIColor purpleColor].CGColor;

tempView.layer.shadowOffset = CGSizeMake(20, 20);

值越大越模糊

tempView.layer.shadowRadius = 10;

tempView.layer.shadowOpacity = 0.5;

tempView.layer.shadowPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 200, 150)].CGPath;

设置layer的contents 设置图片

tempView.layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"me"].CGImage);

隐式动画 

对于layer来说的,是layer的属性

只要layer的属性有一个animatable

就有隐式动画

隐式动画是指自己定义的,直接会有动画的效果

*我们的根layer 隐式动画 默认情况下,是被关闭的,在block动画中该特性被打开了.