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
行上失败,说messageLabel
为nil
。
我以为self.init(frame:)
会初始化我的xib? 我哪里错了?