如何禁用CALayer中的剪辑?我正在覆盖drawInContext,但我希望能够绘制延伸到CALayer边界之外的线,并且我不想在父图层上执行单独的绘图传递来实现这一点。
答案 0 :(得分:5)
你无法在CALayer或UIView的范围之外使用Quartz进行绘制。正如诺亚建议的那样,你需要将图层的边界扩展一定的数量才能绘制出来。
只要您的父图层的masksToBounds
属性设置为NO,您仍然可以在父图层中不必进行绘图的情况下执行此操作。这样,即使您的子图层延伸到父图像的边缘之外,它仍然会被正确绘制。
答案 1 :(得分:4)
好吧,CALayer
有一个masksToBounds
属性(设置为NO
,禁用对图层边界的默认剪裁)但我不认为它会影响图层的绘制图层本身 - 只是其子图层的剪切。如果由于某种原因无法展开图层的框架,则需要在图层上设置该属性,添加一个更大的子图层,其中包含要在其中绘制的尺寸,并将绘图代码移动到该子图层