Сбой при загрузке пера для просмотра

http://en.wikipedia.org/wiki/Virtual_function

«В объектно-ориентированном программировании виртуальная функция или виртуальный метод - это функция или метод, поведение которых может быть переопределено внутри наследующего класса функцией с той же сигнатурой ».

Google всегда является вашим другом.

0
задан Cristik 17 January 2019 в 06:51
поделиться

3 ответа

Я нашел что-то не так в вашем коде.

  1. У вас есть розетка для contentView. Это означает, что это представление уже добавлено в вашу иерархию представлений. Тогда в вашем commonInit() addSubview (contentView) 'делать неправильно.

  2. Результат Bundle.main.loadNibNamed("VerificationCodeView", owner: self, options: nil) не используется.

Вы можете использовать это для загрузки представления из пера:

let verificationCodeView = UINib(nibName: "VerificationCodeView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! VerificationCodeView

Если вы хотите получить экземпляр VerificationCodeView, напишите метод класса, как показано ниже.

class func instantiateFromNib() -> VerificationCodeView {

    let verificationCodeView = UINib(nibName: String(describing:self), bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! VerificationCodeView
    return verificationCodeView
}

Теперь, когда вам нужно это представление, просто получите его, как показано ниже:

let verificationCodeView = VerificationCodeView.instantiateFromNib()
0
ответ дан Shubham 17 January 2019 в 06:51
поделиться

Пожалуйста, обновите вашу функцию

private func commonInit() {
let uvNub: UIView = Bundle.main.loadNibNamed("VerificationCodeView", owner: self, options: nil) //CRASHES HERE
self.addSubview(uvNub)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]

}

0
ответ дан Parth Dhorda 17 January 2019 в 06:51
поделиться

Попробуйте приведенный ниже код,

fileprivate func commonInit () {

    let bundle = Bundle(for: type(of: self))
    bundle.loadNibNamed("VerificationCodeView", owner: self, options: nil)
    self.addSubview(containerView)
    containerView.translatesAutoresizingMaskIntoConstraints = false
    containerView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 0).isActive = true
    containerView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: 0).isActive = true
    containerView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0).isActive = true
    containerView.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true
}
0
ответ дан Ahemadabbas Vagh 17 January 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: