用init继承UIView

时间:2018-10-23 04:05:00

标签: swift class uiview init

我已经尝试过先前问题的所有答案,但是在尝试对UIView进行子类化并添加自己的初始化程序时仍然遇到错误。这是代码:

class ProgressAlertView: UIView {
    var title: String
    var steps: Int
    var messageLabels: [String]
    var errorLabel: String
    var successLabel: String

    public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        alertLayout()
    }

    public override init(frame: CGRect) {
        super.init(frame: frame)
        alertLayout()
    }

    convenience init(title: String, steps: Int, messageLabels: [String], errorLabel: String, successLabel: String) {
        self.init(frame: frame)
        self.title = title
        self.steps = steps
        self.messageLabels = messageLabels
        self.errorLabel = errorLabel
        self.successLabel = successLabel
    }
}

这会在必需方法和替代方法中引发此错误:

  

未在super.init调用中初始化属性'self.title'

在回答上一个问题时,有人解释说,需要在调用super.init()之前先设置参数。当我尝试这样做时,我收到以下错误消息(位于上面的错误消息之上): 在调用“ self.init”之前在属性访问“标题”中使用“ self”

正确的方法是什么?

0 个答案:

没有答案