在没有 Init() 的情况下创建 UIView 子类 - Swift?

Create UIView Subclass Without Init() - Swift?

我有一个 UIView 子类,它只包含以下内容:

drawRect(rect: CGRect) {
    let ctx: CGContext? = UIGraphicsGetCurrentContext()
    let radius: CGFloat = rect.width / 2
    let endAngle = CGFloat(2 * M_PI)
    CGContextAddArc(ctx, bounds.width / 2, bounds.height / 2, radius, 0, endAngle, 1)
    CGContextSetStrokeColorWithColor(ctx, UIColor.blackColor().CGColor)
    CGContextSetFillColorWithColor(ctx, UIColor.whiteColor().CGColor)
    CGContextSetLineWidth(ctx, 4.0)
    CGContextDrawPath(ctx, CGPathDrawingMode.FillStroke)
}

我没有调用任何 init() 函数,但对象仍然被绘制。

此外,当我尝试实现 init() 函数时,我收到了一些关于所需初始化的错误。

所以我的问题是:如何在没有 init() 函数的情况下创建 UIView 对象?

初始化器是继承的。您的 superclass (UIView) 已经定义了 init,因此您的 class 默认继承它们。

定义 init 后,您的 class 将不再继承超级class 初始化器,因此您必须定义所有必需的初始化器。