iOS 开发 给View添加手势

2025-11-24 07:03:31

1、iOS 系统在 3.2 以后,提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。

UIPanGestureRecognizer(拖动)

UIPinchGestureRecognizer(捏合---放缩图片)

UIRotationGestureRecognizer(旋转)

UITapGestureRecognizer(点按)

UILongPressGestureRecognizer(长按)

UISwipeGestureRecognizer(轻扫 滑动)

2、1.======"捏合手势"(放缩图片)======

键盘快捷键: Alt + 鼠标右键   

Mac: option +  触摸板右键

iOS 开发 给View添加手势

iOS 开发 给View添加手势

iOS 开发 给View添加手势

iOS 开发 给View添加手势

3、2.=========添加"点击手势"=======

通过鼠标右键点击

iOS 开发 给View添加手势

iOS 开发 给View添加手势

4、======滑动手势 / 轻扫手势=======

//解决在图片上滑动时拖动手势和轻扫手势的冲突 

   [panGesture requireGestureRecognizerToFail:swipeGestureToRight];  

  [panGesture requireGestureRecognizerToFail:swipeGestureToLeft];

iOS 开发 给View添加手势

iOS 开发 给View添加手势

5、=======拖动手势======

//解决在图片上滑动时拖动手势和轻扫手势的冲突 

   [panGesture requireGestureRecognizerToFail:swipeGestureToRight];  

  [panGesture requireGestureRecognizerToFail:swipeGestureToLeft];

//解决拖动和长按手势之间的冲突    

[longPressGesture requireGestureRecognizerToFail:panGesture];

//解决在图片上滑动时拖动手势和轻扫手势的冲突   

 [panGesture requireGestureRecognizerToFail:swipeGestureToRight];   

 [panGesture requireGestureRecognizerToFail:swipeGestureToLeft];

//默认为向右轻扫

swipeGestureToRight.direction=UISwipeGestureRecognizerDirectionRight;

iOS 开发 给View添加手势

iOS 开发 给View添加手势

6、=======旋转======

键盘快捷键: Alt + 鼠标右键  

iOS 开发 给View添加手势

iOS 开发 给View添加手势

7、=====长按======

//解决拖动和长按手势之间的冲突    

[longPressGesture requireGestureRecognizerToFail:panGesture];

iOS 开发 给View添加手势

iOS 开发 给View添加手势

8、=====摇晃======

在模拟器中运行时,可以通过

[Hardware]-[Shake Gesture]

(或者command+shift+z)

iOS 开发 给View添加手势

iOS 开发 给View添加手势

9、#pragma mark 手势代理方法 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{    

         //NSLog(@"%i,%i",gestureRecognizer.view.tag,otherGestureRecognizer.view.tag);        

       //注意,这里控制只有在UIImageView中才能向下传播,其他情况不允许

      if ([otherGestureRecognizer.view isKindOfClass:[UIImageView class]]) { 

       return YES;   

      }    

     return NO;

 }

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢