1.创建 DemoView.swift,继承 UIView
class DemoView: UIView {
@objc func onClick(){
print("onClick")
}
override init(frame: CGRect) {
super.init(frame: frame)
addView()
}
func addView(){
let bt = UIButton(type: UIButton.ButtonType.contactAdd)
addSubview(bt)
bt.addTarget(self, action: #selector(onClick), for: UIControl.Event.touchUpInside)
}
required init?(coder: NSCoder) {
//导致如果使用 SB 开发,调用这个视图,会直接崩溃
//阻止使用 SB 使用当前自定义视图
//如果只希望当前视图被纯代码的方式加载,可以使用 fatalError
//print("NSCoder")
//fatalError("init(coder:) has not been implemented")
super.init(coder: coder)
addView()
}
}
2.storyboard 中实现,在 Main.storyboard 中添加 UIView,设置背景颜色,自定义类设置为 DemoView
3.纯代码实现
func demo(){
let v = DemoView(frame: CGRect(x: 20, y: 200, width: 200, height: 100))
v.backgroundColor = UIColor.red
view.addSubview(v)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)