在CALayer中禁用剪裁

时间:2010-12-27 21:49:48

标签: iphone quartz-graphics calayer

如何禁用CALayer中的剪辑?我正在覆盖drawInContext,但我希望能够绘制延伸到CALayer边界之外的线,并且我不想在父图层上执行单独的绘图传递来实现这一点。

2 个答案:

答案 0 :(得分:5)

你无法在CALayer或UIView的范围之外使用Quartz进行绘制。正如诺亚建议的那样,你需要将图层的边界扩展一定的数量才能绘制出来。

只要您的父图层的masksToBounds属性设置为NO,您仍然可以在父图层中不必进行绘图的情况下执行此操作。这样,即使您的子图层延伸到父图像的边缘之外,它仍然会被正确绘制。

答案 1 :(得分:4)

好吧,CALayer有一个masksToBounds属性(设置为NO,禁用对图层边界的默认剪裁)但我不认为它会影响图层的绘制图层本身 - 只是其子图层的剪切。如果由于某种原因无法展开图层的框架,则需要在图层上设置该属性,添加一个更大的子图层,其中包含要在其中绘制的尺寸,并将绘图代码移动到该子图层