什么是CALayer

CALayer是UIView里的一个图层,其主要功能是负责显示视图与动画。CALayer和UIView 功能是一致的、 不过因为其 更加底层 所以 CALayer 有一些接口、 UIView 里面没有。

CALayer与UIView

UIView:用于管理视图的容器。每次创建UIView对象时,UIView对象就会在内部创建一个层(CALayer),通过这个层实现显示功能。

CALayer:实际用于显示的层,但是它不具备事件响应能力。

CALayer具有更好的性能,资源消耗少,如果我们只做显示功能可以考虑使用CALayer及其子类来优化性能。

CALayer的使用

1. 使用UIView的layer属性,设置特殊效果。

例:

- (void) initView {

UIView* view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

view.backgroundColor = [UIColor redColor];

// layer边框宽度

view.layer.borderWidth = 10;

// layer边框颜色(这是CGColor)

view.layer.borderColor = [UIColor blueColor].CGColor;

// layer的圆角半径大小

view.layer.cornerRadius = 20;

// 设置阴影颜色(CGColor)

view.layer.shadowColor = [UIColor grayColor].CGColor;

// 设置阴影偏移量,正数在左,负数在右

view.layer.shadowOffset = CGSizeMake(10, 10);

// 设置阴影的显示程度

view.layer.shadowOpacity = 0.3;

// 剪切掉多余部分,但是如果设置了阴影,阴影也会被剪切。

// view.layer.masksToBounds = YES;

[self.view addSubview:view];

}

效果展示:

2. 使用CALayer单独显示内容。

这里介绍下CALayer的position属性和anchorPoint属性。

position属性是指定位点的位置,类似center。

anchorPoint属性决定CAlayer上的哪一个点会成为定位点。它以原点为(0, 0),其(x, y)取值都是0~1。

anchorPoint定位点的计算方法是比例计算,比如默认值(0.5, 0.5),意思就是从原点出发,这个点的位置在x总长的一半,y总长的一半,即中心点。而position属性指的就是这个点在父图层上的位置。

简单使用CALayer显示一个红色的图层

代码:

- (void) initCALayer {

CALayer* layer = [CALayer layer];

// 跟这里也是CGColor

layer.backgroundColor = [UIColor redColor].CGColor;

// 设置宽✖️高

layer.bounds = CGRectMake(0, 0, 100, 100);

// 设置位置

layer.position = CGPointMake(100, 100);

// 设置锚点

layer.anchorPoint = CGPointMake(0, 0);

[self.view.layer addSublayer:layer];

}

效果图:

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: