IBOutlet在IBDesignable类中为nil

时间:2018-10-30 17:58:27

标签: swift nib custom-view

我有一个自定义视图类,应该只包含一个标签。我在每个目标中都有一个扩展名,该扩展名将提供应在视图中显示的文本,这样,我就不必重新创建每个控制器,只是要在其中具有不同的标签和背景颜色。

我的自定义代码是:

@IBDesignable
class HomeAccentView: UIView {

    @IBOutlet weak var nameLabel: UILabel!

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

        setup()
    }

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

        setup()
    }

    override func awakeFromNib() {
        super.awakeFromNib()

        setup()
    }

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()

        setup()
    }

    private func setup() {
        backgroundColor = UIColor.main

        nameLabel.text = String.headerText
        nameLabel.textColor = UIColor.white
    }
}

我的笔尖的文件所有者为HomeAccentView,标签连接到情节提要上的插座。nib storyboard

但是,每当我尝试设置标签的文本时,它总是为零。我想念什么或做错什么了?

1 个答案:

答案 0 :(得分:1)

您未设置查看类。您只设置了文件所有者,这意味着您告诉HomeAccessView负责加载视图,但是您的代码未显示此信息。这背后有动机吗?否则,请从文件所有者中删除类,并将其设置为查看。