Кнопка на подпредставлении недоступна после добавления в программу просмотра - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь добавить подпредставление в представление, но после добавления кнопка в подпредставлении недоступна. Я проверил состояние кнопки, взаимодействие с пользователем включено. и после добавления подпредставления пользовательский интерфейс подпредставления отображается корректно.

Класс подпредставления:

class ErrorInfoView: UIView {

@IBOutlet var containerView: UIView!
@IBOutlet weak var messageLabel: UILabel!
var callback: (()->())?

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

override init(frame: CGRect) {
    super.init(frame: frame)
    commonInit()
}

func commonInit() {

    Bundle.main.loadNibNamed("ErrorInfoView", owner: self, options: nil)
    containerView.frame = self.bounds
    containerView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    containerView.backgroundColor = UIColor.clear

    addSubview(containerView)
}

func configure(message: String, callback: @escaping ()->()) {
    self.messageLabel.text = message
    self.callback = callback
}

@IBAction func pressRetryButton(_ sender: UIButton) {
    self.callback?()
}

}

Родительское представление:

            let errorView = ErrorInfoView(frame: self.tableViewContainer.frame)

        errorView.configure(message: error) {
            // do something, but not be called
        }
        self.tableViewContainer.addSubview(errorView)
        self.tableViewContainer.bringSubviewToFront(errorView)

        errorView.translatesAutoresizingMaskIntoConstraints = false
        let horizontalConstraint = errorView.centerXAnchor.constraint(equalTo: self.tableViewContainer.centerXAnchor)
        let verticalConstraint = errorView.centerYAnchor.constraint(equalTo: self.tableViewContainer.centerYAnchor)

        self.tableViewContainer.addConstraints([horizontalConstraint, verticalConstraint])
...