addAction和addTarget都是UIButton的方法,用于给按钮添加响应事件。但是它们的使用方式和效果略有不同。
使用addAction添加事件时,需要传入一个闭包作为参数来指定按钮被点击时所触发的操作。示例如下:
button.addAction {
print("Button is tapped.")
}
而使用addTarget则需要指定一个目标对象和响应方法。示例如下:
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
@objc private func buttonTapped() {
print("Button is tapped.")
}
可以看到,在使用addTarget时需要在目标对象中定义一个响应方法,而这个方法需要使用@objc关键字标记。
所以,addAction更加简单,适用于只需要执行简单操作的情况;而addTarget则更加灵活,可以传递更多的参数,同时可以在多个方法间切换以达到更复杂的操作。
在实际使用时,可以根据需求选择使用addAction或addTarget。