自定义UIView子类中的UIButton不会触发动作事件

时间:2019-06-10 17:33:44

标签: ios swift uibutton action selector

这个问题已经被问过很多次了,对此我感到抱歉。但是,我想深入理解为什么这样做。所以这是东西:

ViewController -> customView -> UIButton 我试图使用委托/协议访问视图控制器中的按钮。但是在执行所有操作之前,我首先要确保该按钮触发选择器方法。

在customView类中,我有两个UIButton,向它们添加了目标:

   var photoButton: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("Photos", for: .normal)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.addTarget(self, action: #selector(handleAddPhotoButton), for: .touchUpInside)
    return button
}()

然后在handlePhotoButton中(仍在自定义类中)我这样说:

    @objc func handleAddPhotoButton() {
    print("button")
}

但是,它根本不起作用。约束很好。我也检查了层次结构调试器,并且该按钮位于顶部。在视图控制器中,自定义视图的初始化如下:

    lazy var accessoryView: AccessoryView = {
    let view = AccessoryView()
    view.delegate = self
    view.translatesAutoresizingMaskIntoConstraints = false
    return view
}()

我的猜测是,这种观点并没有被自己坚持。但是这里出了什么问题。请帮忙!

1 个答案:

答案 0 :(得分:0)

尝试在按钮声明之前添加“惰性”