我的 override init (frame : CGRect)
{
super.init(frame : frame)
}
看起来像这样:
override init (frame : CGRect, number:Int)
我想添加一个参数,例如:
init
这样做的正确方法是什么,我可以<div class="col-12 mb-sm-3"></div>
并在一行中发送arg?
答案 0 :(得分:1)
您可以这样做:
class CustomView: UIView{
var number: Int
init(frame : CGRect, number: Int) {
self.number = number
print("Number = \(number)")
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
然后将其添加到堆栈中,如下所示:
let viewToAdd = CustomView(frame: CGRect(x: 20, y: 72, width: 100 , height: 100), number: 1)
viewToAdd.backgroundColor = .red
self.view.addSubview(viewToAdd)
答案 1 :(得分:1)
您可以将您的类定义为:
class MyView: UIView {
let number: Int
init(frame: CGRect, number: Int) {
self.number = number
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
// Need to initialize the number property here. Do so appropriately.
super.init(coder: aDecoder)
}
}
使用number
属性只是一个例子。做你真正需要的。
你会创建一个像这样的实例:
let mv = MyView(frame: .zero, number: 42)
显然你会传递一个有用的框架。