可可触摸 – 如何在Swift中为UIView子类编写自定义init?

可可触摸 – 如何在Swift中为UIView子类编写自定义init?,第1张

概述说我想要一个UIView子类与一个String和一个Int。 如果我只是子类化UIView,我将如何在Swift中这样做?如果我只是做一个自定义init()函数,但参数是一个String和一个Int,它告诉我“super.init()在从初始化程序返回之前不被调用”。 如果我调用super.init()我被告知我必须使用一个指定的初始化。我应该在那里使用什么?框架版本?编码器版本?都?为什么? i 说我想要一个UIVIEw子类与一个String和一个Int。

如果我只是子类化UIVIEw,我将如何在Swift中这样做?如果我只是做一个自定义init()函数,但参数是一个String和一个Int,它告诉我“super.init()在从初始化程序返回之前不被调用”。

如果我调用super.init()我被告知我必须使用一个指定的初始化。我应该在那里使用什么?框架版本?编码器版本?都?为什么?

init(frame :)版本是默认的初始化器。只有在初始化实例变量后才能调用它。如果这个视图正在从一个Nib重构,那么你的自定义初始化程序将不会被调用,而是将调用init(coder :)版本。由于Swift现在需要实现所需的init(coder :),我更新了下面的例子,并将let变量声明改为var和optional。在这种情况下,您可以在awakeFromNib()中或稍后初始化它们。
class TestVIEw : UIVIEw {    var s: String?    var i: Int?    init(s: String,i: Int) {        self.s = s        self.i = i        super.init(frame: CGRect(x: 0,y: 0,wIDth: 100,height: 100))    }    required init(coder aDecoder: NSCoder) {        super.init(coder: aDecoder)    }}
总结

以上是内存溢出为你收集整理的可可触摸 – 如何在Swift中为UIView子类编写自定义init?全部内容,希望文章能够帮你解决可可触摸 – 如何在Swift中为UIView子类编写自定义init?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存