iOS手势处理由UIGestureRecognizer
控制,不同手势有这个类的不同子类处理,不同手势处理有不同的相关属性。
子类 | 描述 |
---|---|
UITapGestureRecognizer | 点击手势 |
UIPanGestureRecognizer | 跟着手移动手势 |
UIPinchGestureRecognizer | 缩放手势 |
UIRotationGestureRecognizer | 旋转手势 |
UISwipeGestureRecognizer | 轻扫手势 |
UILongPressGestureRecognizer | 长按手势 |
UIScreenEdgePanGestureRecognizer | 屏幕边缘滑动手势 |
手势处理的步骤一般:
- 初始化手势,并添加到需要手势的View中
- 添加手势回调方法
UITapGestureRecognizer
属性numberOfTapsRequired
表示点击次数,属性numberOfTouchesRequired
表示点击手指数。
1 | var isChange = false |
UIPanGestureRecognizer
1 | let pan = UIPanGestureRecognizer(target: self, action: #selector(ViewController.pan(pan:))) |
1 | func pan(pan: UIPanGestureRecognizer) { |
UIRotationGestureRecognizer
1 | let rotation = UIRotationGestureRecognizer(target: self, action: #selector(ViewController.rotation(rotation:))) |
1 | func rotation(rotation: UIRotationGestureRecognizer) { |
UISwipeGestureRecognizer
1 | let swipe = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.swipe(swipe:))) |
1 | func swipe(swipe: UISwipeGestureRecognizer) { |
UILongPressGestureRecognizer
numberOfTouchesRequired
长按的指头数minimumPressDuratio
长按最小时间(秒)
1 | let long = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.long(long:))) |
UIScreenEdgePanGestureRecognizer
1 | let screenEdge = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(ViewController.screenEdage(screenEdage:))) |
1 | func screenEdage(screenEdage: UIScreenEdgePanGestureRecognizer) { |
详细代码: GestureDemo