【发布时间】:2016-10-04 20:03:55
【问题描述】:
我有一个自定义 UIView,我在其中实现了几种方便的绘图方法,允许我设置特定角的角半径、绘制边框以及使用渐变而不是背景颜色。我通过覆盖drawRect(rect:CGRect) 来实现这一点。然而,尽管使用CGContextClip 将绘图剪辑到我生成的 CGPathRef,但始终绘制背景颜色以填充视图的边界。那是因为视图的图层是在调用 drawRect 之前绘制的。
除了覆盖背景颜色的设置器之外,还有其他方法可以仅绘制我在 drawRect 中指定的内容吗?我不想用 CAShapeLayer 或类似的东西来掩盖图层。应该仍然可以在图层边界之外进行子类化和绘制。
【问题讨论】:
-
设置
backgroundColor以清除颜色并覆盖设置器。这是你唯一能做的。另请注意属性clearsContextBeforeDrawing和opaque。 -
是的,我目前使用的是 backgroundColor 覆盖方法,但我想知道是否有更好的方法。好像没有。
标签: swift core-graphics