Ios UIBezierPath addClip和drawRect

Ios UIBezierPath addClip和drawRect,ios,swift,uibezierpath,Ios,Swift,Uibezierpath,我知道有一种方法可以画一个roundedRect-UIBezierPath(roundedRect,cornerRadius) 但是我想知道,如果我自己剪辑这个角,为什么我必须在绘制矩形之前添加剪辑?(我觉得画完后再剪辑矩形更合理。我错过了什么概念?) (1) 工作 (2) 不行 如果将绘图区域想象为一张纸,剪切并不意味着在绘图后用剪刀将其剪下。相反,这更像是把一个模板板上的表,只有冲孔出来的地区是相关的绘图,然后 此概念为您提供了更大的灵活性,因为您可以随时删除或交换模板,即设置新的剪裁路径,

我知道有一种方法可以画一个roundedRect-
UIBezierPath(roundedRect,cornerRadius)

但是我想知道,如果我自己剪辑这个角,为什么我必须在绘制矩形之前添加剪辑?(我觉得画完后再剪辑矩形更合理。我错过了什么概念?)

(1) 工作

(2) 不行


如果将绘图区域想象为一张纸,剪切并不意味着在绘图后用剪刀将其剪下。相反,这更像是把一个模板板上的表,只有冲孔出来的地区是相关的绘图,然后

此概念为您提供了更大的灵活性,因为您可以随时删除或交换模板,即设置新的剪裁路径,这对于更复杂的图形非常有用

override func drawRect(rect: CGRect) {
    var clipPath = UIBezierPath(roundedRect: rect, cornerRadius: 8.0)
    path.addClip()

    var rectPath = UIBezierPath(rect: rect)
    UIColor.redColor().setFill()
    rectPath.fill()
}
override func drawRect(rect: CGRect) {
    var rectPath = UIBezierPath(rect: rect)
    UIColor.redColor().setFill()
    rectPath.fill()

    var clipPath = UIBezierPath(roundedRect: rect, cornerRadius: 8.0)
    path.addClip()
}