我创建了一个自定义UIButton类:
class CustomButton:UIButton{ 必需的init(frame:CGRect,title:String,alignment:NSTextAlignment) { super.init(frame:frame)
// …
您可能需要一个闭包而不是计算属性
lazy var customBtn: CustomButton = { let frame = CGRect(x: 48.0, y: 177.0, width: 80.0, height: 40.0) let custom = CustomButton(frame: frame, title: "Test",alignment: NSTextAlignment.right) return custom }()
在里面 MainViewController
MainViewController
customBtn.addTarget(self, action: #selector(touchCancel), for: .touchUpInside)
您将目标添加到新创建的实例而不是添加为子视图的实例,这是您的实现(计算属性)和闭包之间的主要区别