Swift:以编程方式从xib加载自定义UIView

这在Objective-C中应该相对简单,但是我在尝试在Swift中实现它时遇到了问题。

我有一个xib和两个IBOutlets到自定义UIView。 但是当我初始化视图时,我得到一个错误,说我的IBOutlets是零。

这是我的CustomView:

 import UIKit class MessageView: UIView { @IBOutlet weak var messageLabel: UILabel! @IBOutlet weak var genderImageView: UIImageView! override convenience init() { self.init(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) } override init(frame: CGRect) { super.init(frame: frame) } convenience init(message: String, gender: Gender) { self.init(frame: CGRectMake(0, 0, 320, 40)) messageLabel.text = message genderImageView.image = UIImage(named: "male") } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } } 

我正在从我的视图控制器调用便捷初始化程序,它在messageLabel.text = message行上失败,说messageLabelnil

我以为self.init(frame:)会初始化我的xib? 我哪里错了?