任何人都可以澄清这两种在点击 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
提供了相同级别的界面,例如 UISegmetedControl
、 UISlider
,等等。
希望我对你有所帮助。
关于ios - UITapGestureRecognizer 和 addTarget 的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39124642/