任何人都可以澄清这两种在点击 View 时触发功能的方式之间的区别吗?

1)myView.addTarget(self, action: #selector(myFunctionToTrigger(_:)), forControlEvents: UIControlEvents.TouchUpInside)
2)let tapGesture = UITapGestureRecognizer(target: self, action: #selector(myFunctionToTrigger(_:))) myView.addGestureRecognizer(tapGesture)

最佳答案

这是在 iOS 应用程序中实现用户事件处理的两种完全不同的方式。

1)。 addTarget() - 是 UIControl 类上的方法,它是目标- Action 机制的一部分。更多关于 documentation 的内容。

而且你不能 addTarget 到任何 UIView ,只能到 UIControl 子类。

2)。 UIGestureRecognizer 子类只是一种检测和区分特定 View 上用户手势的机制。

它们之间的主要区别在于手势识别器可以检测更复杂的事件,如滑动、捏合或缩放,但 -addTarget 是一种更有效的检测用户事件的方法,它还为所有 UIControl 提供了相同级别的界面,例如 UISegmetedControlUISlider ,等等。

希望我对你有所帮助。

关于ios - UITapGestureRecognizer 和 addTarget 的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39124642/

10-13 05:29