如何仅填充自定义UIView矩形的一部分?

时间:2019-06-20 14:30:24

标签: swift xcode uibezierpath rounded-corners

我正在尝试使用UIBezierPath在自定义UIView的灰色背景“上方”创建一个黄色的圆角矩形。如果您能帮助我理解为什么此代码段不起作用,我将不胜感激:

class CardView: UIView {
    override func draw(_ rect: CGRect) {
        let roundedRect = UIBezierPath(roundedRect: bounds, cornerRadius: 16.0)
        UIColor.yellow.setFill()
        roundedRect.fill()
    }
}

This links to a picture of my storyboard.

谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我知道了。 。 。我没有调用addClip()方法。

class CardView: UIView {

    override func draw(_ rect: CGRect) {
        let roundedRect = UIBezierPath(roundedRect: bounds, cornerRadius: 16.0)
        roundedRect.addClip()
        UIColor.yellow.setFill()
        roundedRect.fill()
    }

}

这现在有效。