DrawRect覆盖视图的属性

时间:2015-06-07 20:58:57

标签: ios swift uiview xcode6

我正在创建一个自定义视图,它基本上只是一个cirlce内的复选标记。我使用layer.cornerRadius = 0.5 * frame.width创建了一个圆圈,但是当我覆盖drawRect时,它会导致该行被忽略,我的视图变成正方形。

这是为什么?我怎么能解决这个问题所以我可以创建一个带有复选标记的圆圈?

这是我目前的代码:

class CheckMarkView: UIView {

    override init(frame: CGRect) {
        super.init(frame: frame)

        layer.cornerRadius = 0.5 * frame.width
        backgroundColor = .whiteColor()
        hidden = true
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

1 个答案:

答案 0 :(得分:1)

只需将clipsToBounds添加到true,并获取可用的所有帧。

      class CheckMarkView: UIView {

        override init(frame: CGRect) {
            super.init(frame: frame)

            layer.cornerRadius = 0.5 * frame.width
            backgroundColor = UIColor.whiteColor()
            clipsToBounds = true
        }

        required init(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }

        override func drawRect(rect: CGRect) {
            super.drawRect(rect)
        }
      }