背景:经常需要把一些UI内容写到地一个类里,初化的时候只设置位置,我们能不能把一些已知的参数通过初化的时候直接传进去呢?显然是可以的。
假如我们要写一个弹框列表,已知列表的内容,弹框背景全屏幕展示,怎么把列表数据当参数在初化时传进去呢,接下直接上代码。
class UBListChoiceView: UIView {
var callback:Callback?
var datas:[String]?
// 主要看这里
convenience init(datas:[String]?, callback:Callback?) {
let rect = UIScreen.main.bounds
self.init(frame: rect)
self.datas = datas
self.callback = callback
initSubviews()
}
func initSubviews() {
// 实现具体内容
}
}
关键是使用convenience关键字init方法的定义及self.init方法调用,搬个砖加深一下印象。
网友评论