我想在主视图中创建一个视图,并将滑动和拖动(平移)手势应用于该视图。但是如何知道那是轻扫还是平移手势?如何检测滑动和拖动之间的手势?
1
A
回答
3
@dfd是正确的。你应该总是使用内置的iOS手势识别器。如果应用程序要各自实现自己的逻辑来确定手势,那么iOS对用户来说就是一个非常不一致的体验。
每个手势识别器都将是UIGestureRecognizer
的一个子类。您应该阅读documentation。
在你的情况下,你想要UISwipeGestureRecognizer
和UIPanGestureRecognizer
。
下面是一个例子:
class ViewController: UIViewController {
override func viewDidLoad() {
let swipeRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(userSwiped))
swipeRecognizer.numberOfTouchesRequired = 1
swipeRecognizer.direction = .left
let panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(userPanned))
panRecognizer.minimumNumberOfTouches = 1
view.addGestureRecognizer(swipeRecognizer)
view.addGestureRecognizer(panRecognizer)
}
@objc private func userSwiped(recognizer: UISwipeGestureRecognizer) {
}
@objc private func userPanned(recognizer: UIPanGestureRecognizer) {
}
}
在这里,我创建了手势识别器,并添加他们,我想任何视图。您不必在viewDidLoad
中执行此操作。通过设置目标,我们正在设置手势被识别时应该调用哪个方法。识别器会自动将自己作为参数传递给您的自定义函数,以便您可以查询state
属性等。您应该阅读文档以了解每个手势识别器的过程如何不同。
+0
谢谢。好例子。 –
相关问题
- 1. 检测用户的手势,如滑动
- 2. 检测iframe中的滑动手势
- 3. 使用javascript检测滑动手势
- 4. 水平滑动手势检测Android
- 5. 检测WebView空滑动手势异常
- 6. 在HTML文件之间滑动手势
- 7. 拖动手势识别器干扰滑动手势识别器
- 8. 平移手势和滑动手势
- 9. 滑动手势滑动UIViews
- 10. Flex viewNavigator和滑动:手势和有效滑动之间的延迟
- 11. 如何检测滑动手势的方向?
- 12. 如何检测自定义UITableviewCell中的滑动删除手势?
- 13. UIButton和滑动手势
- 14. 检测滑动手势时,有一个滚动型的Android
- 15. 实现手势检测器拖动,DoubleTap和singleTap一个ImageView
- 16. UITextView滑动手势
- 17. 滑动ios手势
- 18. 用手势滑动动画
- 19. 如何启用UITextView的滑动手势
- 20. 如何在执行拖动手势时平滑地生成CGAffineTransform
- 21. 添加滑动手势,无法滑动
- 22. iOS滑动手势在同一ViewController中的不同视图之间滑动
- 23. 您如何识别拖动手势
- 24. 检测UIView中的对角滑动手势
- 25. 在UIScrollView里面检测UITableViewCell上的滑动手势
- 26. 检测iOS上的向上滑动手势
- 27. 滑动手势检测屏幕的限制区域
- 28. 如何拦截垂直滑动手势
- 29. SWRevealViewController如何删除滑动手势
- 30. 故事板中视图控制器之间的滑动手势
最简单的方法是使用UIGestureRecognizers - 让操作系统做出区分。 – dfd
@dfd ok谢谢 –