override func drawRect(rect: CGRect) {
// Drawing code
//third
print("drawRect")
}
override init(frame: CGRect) {
//never
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
//first
super.init(coder: aDecoder)
}
override func awakeFromNib() {
//second
//finish link iboutlet
print("awakeFromNib")
}
依次调用coder->awakeFromNib->drawRect,其中IBOutlet是在awakeFromNib中才完成连接,在coder中调用的话永远是nil,在coder中可以使用viewWithTag调用。