UIView的指定初始化器迅速

爱德华·休恩(Edward Huynh)

所以我UIView像这样类化了

class CustomView: UIView {
}

我可以做类似的事情

let customView = CustomView()

但是,当我重写了我认为是两个指定initialisersUIViewinit(frame:)init(coder:)像这样

class CustomView: UIView {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.backgroundColor = UIColor.redColor()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.redColor()
    }
}

我不能再像这样创建视图,因为它抱怨init()不再存在

let customView = CustomView()

我的理解是,如果我重写所有指定的初始化程序,那么我也应该继承所有便利的初始化程序。

所以我的问题是。init()不是UIView的便利初始化?还是UIView上还有另一个尚未被我覆盖的初始化程序?

马特

init不是UIView上的便捷初始化程序。init根本不是UIView上的初始化器!它是其超类NSObject的初始化程序-UIView只是继承了它。它是NSObject上指定初始化程序。因此,当您实现指定的初始值设定项时,就切断了指定初始值设定项的继承-包括init

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

UITextView的指定初始化器

指定的数组初始化器

为UIView创建静态初始化器

在迅速调用超级指定的初始化方法之前初始化属性值的目的是什么?

C ++中指定初始化器的替代方法

必须调用超类“ UICollectionView”的指定初始化器

什么是C中的指定初始化器?

为什么我们不能迅速在扩展中添加指定的初始化程序?

迅速-通过覆盖init从情节提要中初始化视图控制器

使用CGRectZero初始化UIView的框架

Xamarin.ios初始化UIView

用参数初始化UIView?

在初始化中获取UIView的大小

使用指定的初始化器范围初始化C中struct数组的所有struct成员

静态初始化器?

调用InstantiateWithOwner后重新加载UIView的初始化编码器

带有编码器的UIView初始化会导致递归

使用segues时,将数据传递给初始化初始化程序之前的视图控制器。(迅速)

对于UIView子类,如果用CGRect参数覆盖初始化器,为什么会自动提供带有空参数的初始化器?

指定的初始化和基类?

NSWindowController指定的初始化难题

什么是指定的初始化程序?

迅速; 从未使用过不变值的初始化

迅速在NSString上进行便捷的初始化

迅速给出错误的字典初始化数组

如何正确分配/初始化弱变量?(迅速)

Swift-必须调用超类SKSpriteNode错误的指定初始化器

为什么我不能将指定的初始化器放置到类的扩展中?

深奥的C指定的初始化程序失败,编译器错误或功能?