IBOutlet在IBDesignable类中为nil

IBOutlet在IBDesignable类中为nil

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

@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
    }
}

我的nib的文件所有者是HomeAccentView,标签作为故事板上的插座连接。swift - IBOutlet在IBDesignable类中为nil-LMLPHP
但每当我试图设置标签的文本时,它总是为零。我错过了什么或做错了什么?

最佳答案

您没有为视图设置类。您只设置了文件所有者,这意味着您告诉HomeAccessView负责加载视图,但您的代码没有显示这一点。这背后有什么动机吗?否则,从文件所有者中删除类并将其设置为“查看”。

关于swift - IBOutlet在IBDesignable类中为nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53070234/

10-12 22:01