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

标签 ios swift macos uiview core-graphics

我有一个 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 对象?

最佳答案

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

一旦定义了 init,您的类将不再继承父类(super class)初始化器,因此您必须定义所有必需的初始化器。

关于ios - 在没有 Init() 的情况下创建 UIView 子类 - Swift?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35820895/

相关文章:

objective-c - 如何在 OSX 10.9 (Mavericks) 的 NSWindow 上使用 CIFilter?

ios - 如何使 UIImage 在 UIScrollView 中可滚动?

ios - 使用自定义选项卡栏以编程方式选择选项卡时,选项卡栏项目未突出显示

ios - 在 iOS 10 中通过 "prefs:root=WIFI"打开 Wifi 设置失败

ios - Safari、iPhone 5 和移动浏览器 Webviews 不支持 flex Css

swift - 列出所有可用的音频设备

macos - 更改默认 OpenGL 上下文配置文件版本

html - CSS 不会加载它的属性

ios - 响应中缺少 Alamofire 参数

ios - 有没有不同的方式如何发送 HTTP "POST"请求而不使用第三方库使用自定义 header 和正文?