是否可以在由 CATiledLayer 支持的 UIView 子类中的 draw(_ rect: CGRect) 函数中在矩形边界外画一条线?

Is it possible to draw a line outside rect bounds in draw(_ rect: CGRect) function in a UIView subclass that is backed by a CATiledLayer?

我有一个由 CATiledLayer 支持的 UIView 子类,我在其中覆盖自定义绘图的 draw(_ rect: CGRect) 函数。是否可以在矩形边界外画一条线?

我刚刚做了一个测试,不行,似乎你不能在 draw(_:) 函数调用中提供的矩形之外绘制。

我创建了一个自定义的 UIView 子类来覆盖 draw(_:):

class CustomView: UIView {
    override func draw(_ rect: CGRect) {
        let drawRect = rect.insetBy(dx: -10, dy: -10)
        let path = UIBezierPath(rect: drawRect)
        UIColor.yellow.setFill()
        path.fill()
    }
}

然后我将 CustomView 添加到故事板中。我用 layer.borderWidth = 2 在情节提要中设置了视图,这样您就可以看到视图的边框,这就是绘制的内容:

我的 draw(_:) 方法试图通过 (-10,-10) 插入绘制矩形,这使得矩形更大,但是在故事板中设置的边界之外看不到任何绘图。