ios - DrawRect 覆盖 View 的属性

标签 ios swift uiview xcode6

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

这是为什么?我该如何解决这个问题,以便在其中创建一个带有复选标记的圆圈?

这是我当前的代码:

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

最佳答案

只需将 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)
        }
      }

关于ios - DrawRect 覆盖 View 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698405/

相关文章:

swift - [unowned self] 是什么意思,有什么好处?

uiview - Xcode 7 View "semantic" Storyboard设置是什么?

ios - SKAction.wait 导致调用错误中的额外参数

ios - 带分段控制的多线程iOS

ios - swift 错误 : "class cannot be constructed because it has no accessible initializers"

iphone - 我无法在 UIView 类之外初始化 CALayer 是否有原因?

iphone - 如何确定 UINavigationController 中工具栏的高度?

ios - UIPageViewController 和 UIButton 混合使用

ios - 如何从放置在 UIAlertController 上的 UITextField 的处理程序访问放置在 UIAlertController 上的按钮?

objective-c - 核心数据 mergeChangesFromContextDidSaveNotification 不起作用