将图层视为一张纸。将视图层想象成一张大白纸。如您所见,标签的图层是视图图层的子级。关联起来,将标签的图层想象为粘在大视图图层表上的纸条。
假设您希望用一个圆圈遮盖图层。为了将其转化为我们的小类比,您希望用哈利波特的隐形斗篷覆盖大视图的图层表,其中有一个圆形孔。
为此,您需要将隐形斗篷剪成与视图图层表相同的大小。
cloakLayer.frame = bigViewLayer.frame;
然后,你会小心地从中剪出一个圆圈。
cloakLayer.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0, 0) radius:15.0 startAngle:0.0 endAngle:2 * M_PI clockwise:YES];
cloakLayer.fillColor = [UIColor blackColor].CGColor; // the hole
然后,您将这个带孔的斗篷粘贴到您的大视图的图层表上,仔细对齐边缘。
bigViewLayer.mask = cloakLayer;
什么会变得不可见?床单上任何不落入您从斗篷上取下的圆圈的东西(因为斗篷被切割成床单的尺寸)。这就是mask 属性。
我们来谈谈masksToBounds 属性。
假设在将标签层纸条粘贴到大视图的层纸上时,您决定只将一半的条带放在纸上,其余的则从边缘挂起。
假设您将masksToBounds 设置为YES。剪纸之神现在要做的就是整齐地切掉标签条上不在大视图图层表边缘内的部分。那是masksToBounds 属性。
让我们谈谈边界。这很简单。只需选择一个笔尖为borderWidth 点宽的borderColor 的锐器,然后小心地在视图图层表的边缘绘制。而已。
我希望你现在得到东西,并且可以对美妙的CALayer 的其他属性进行自己的类比。