ios – UIBezierPath addClip和drawRect

前端之家收集整理的这篇文章主要介绍了ios – UIBezierPath addClip和drawRect前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有一种绘制roundRect的方法 – UIBezierPath(roundedRect,cornerRadius)

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

(1)工作

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()
}

(2)不工作

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()
}

解决方法

如果您将绘图区域想象成一张纸,剪裁并不意味着您在绘图后用剪刀剪掉了一些东西.相反,它更像是在板材上放置模板板,然后只有冲压区域与绘图相关.

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

猜你在找的iOS相关文章