【发布时间】:2010-12-27 21:49:48
【问题描述】:
如何在 CALayer 中禁用剪辑?我正在覆盖 drawInContext,但我希望能够绘制延伸到 CALayer 边界之外的线条,并且我不想在父层上进行单独的绘图传递来实现这一点。
【问题讨论】:
标签: iphone quartz-graphics calayer
如何在 CALayer 中禁用剪辑?我正在覆盖 drawInContext,但我希望能够绘制延伸到 CALayer 边界之外的线条,并且我不想在父层上进行单独的绘图传递来实现这一点。
【问题讨论】:
标签: iphone quartz-graphics calayer
您不能在 CALayer 或 UIView 的范围之外使用 Quartz 进行绘制。正如 Noah 建议的那样,您需要将图层的边界扩大一定数量才能绘制出来。
只要您的父层的masksToBounds 属性设置为NO,您仍然可以这样做而不必在父层中进行一些绘图。这样,即使您的子图层超出了父图层的边缘,它仍然可以正确绘制。
【讨论】:
好吧,CALayer 有一个masksToBounds 属性(设置为NO,禁用对图层边界的默认裁剪),但我认为它不会影响图层本身的绘制——只是裁剪它的子层。如果由于某种原因无法扩展图层本身的框架,则需要在图层上设置该属性,添加具有要在其中绘制的尺寸的更大子图层,然后将绘图代码移动到该子图层.
【讨论】: