这在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?我哪里错了?