我想在我的应用程序中计算所有触摸和按钮操作,以显示在 UI 中,例如用户到目前为止完成了多少操作。这是一个Swift应用程序。
我尝试使用以下代码:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
UtilityClass.sharedInstance.touchesCount += 1
print(UtilityClass.sharedInstance.touchesCount)
}
但它只调用UIView
触及事件,而不调用UIButton
操作,还有其他解决方案可以满足我的要求吗?
如果是它的单按钮操作,我可以调用这个整数来增加,但是,我的应用程序中有很多按钮操作,这就是我在这里发布这个的原因。
尝试将其添加到您的项目中
extension UIButton {
open override func sendAction(_ action: Selector, to target: Any?, for event: UIEvent?) {
super.sendAction(action, to: target, for: event)
UtilityClass.sharedInstance.touchesCount += 1
print(UtilityClass.sharedInstance.touchesCount)
}
}
编辑:
class ViewController: UIViewController {
@IBAction func buttonAction(_ sender: Any) {
}
}
extension UIButton {
open override func sendAction(_ action: Selector, to target: Any?, for event: UIEvent?) {
super.sendAction(action, to: target, for: event)
print("1111")
}
}
以上是我的完整测试代码,我有一个UIButton
的出口按钮,每次单击按钮动作时,它都会打印1111
,如果您的按钮类是UIButton
的自定义子类,请extension UIButton {
更改为extension YourCustomButtonName {