`
whui0110
  • 浏览: 82960 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转载]UITapGestureRecognizer 的用法

    博客分类:
  • ios
 
阅读更多

 

//单指单击
2: UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
3: action:@selector(handleSingleFingerEvent:)];
4: singleFingerOne.numberOfTouchesRequired = 1; //手指数
5: singleFingerOne.numberOfTapsRequired = 1; //tap次数
6: singleFingerOne.delegate = self;
7:
8: //单指双击
9: UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
10: action:@selector(handleSingleFingerEvent:)];
11: singleFingerTwo.numberOfTouchesRequired = 1;
12: singleFingerTwo.numberOfTapsRequired = 2;
13: singleFingerTwo.delegate = self;
14:
15: //双指单击
16: UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
17: action:@selector(handleDoubleFingerEvent:)];
18: doubleFingerOne.numberOfTouchesRequired = 2;
19: doubleFingerOne.numberOfTapsRequired = 1;
20: doubleFingerOne.delegate = self;
21:
22: UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self
23:    action:@selector(handleDoubleFingerEvent:)];
24: doubleFingerTwo.numberOfTouchesRequired = 2;
25: doubleFingerTwo.numberOfTapsRequired = 2;
26: doubleFingerTwo.delegate = self;
27:
28: //如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
29: [singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];
30: //同理双指亦是如此
31: [doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];
32:
33: [self.view addGestureRecognizer:singleFingerOne];
34: [self.view addGestureRecognizer:singleFingerTwo];
35: [self.view addGestureRecognizer:doubleFingerOne];
36: [self.view addGestureRecognizer:doubleFingerTwo];
37:
38: [singleFingerOne release];
39: [singleFingerTwo release];
40: [doubleFingerOne release];
41: [doubleFingerTwo release];

处理事件的方法,代码:

1: //处理单指事件
2: - (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender
3: {
4: if (sender.numberOfTapsRequired == 1) {
5: //单指单击
6: NSLog(@"单指单击");
7: }else if(sender.numberOfTapsRequired == 2){
8: //单指双击
9: NSLog(@"单指双击");
10: }
11: }
12: //处理双指事件
13: - (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
14: {
15: if (sender.numberOfTapsRequired == 1) {
16: //双指单击
17: NSLog(@"双指单击");
18: }else if(sender.numberOfTapsRequired == 2){
19: //双指双击
20: NSLog(@"双指双击");
21: }
22: }
将相应代码复制到你的工程中即可使用,由于代码中已经有详细的解释说明,这里就不在重复解释了。
代码中只是列举了单指与双指对于单击或多击的处理,同理多指的操作需修改numberOfTouchesRequired属性,对点击的次数需修改numberOfTapsRequired属性。
对于其他手势例如UISwipeGestureRecognizer,UILongPressGestureRecognizer,UILongPressGestureRecognizer的操作使用类似处理。
分享到:
评论

相关推荐

    IOS开发之手势响应事件优先级的实例详解

    在view中有一个单击事件UITapGestureRecognizer,在table中点击每个cell也会有点击事件,同样的button中有个点击事件;三个视图中的事件是互不相干的,但也有可能会造成冲突,即达到的效果不是想要的。 解决方案

    iOS手势识别的详细使用方法(拖动,缩放,旋转,点击,手势依赖,自定义手势)

    手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。 1、UIGestureRecognizer介绍 ... UITapGestureRecognizer  UIPinchGestureRecognizer UIRotationGesture

    ios-手势控制:点击、滑动、平移、捏合、旋转、长按、轻扫.zip

    1. UITapGestureRecognizer 2. UISwipeGestureRecognizer 3. UIPanGestureRecognizer 4. UIPinchGestureRecognizer 5. UIRotationGestureRecognizer 6. UILongPressGestureRecognizer 7. ...

    ios滚动效果

    - (void)tapClick:(UITapGestureRecognizer *)tap { [UIView animateWithDuration:0.3 animations:^{ _lineView.frame = CGRectMake(tap.view.frame.origin.x, 47, tap.view.frame.size.width, 2); }]; //...

    iOS应用内调试工具

    FLEX的使用方法也非常简单,在Github上,Flipboard详细列举了精简和完整两个版本的使用代码: 精简用法: //short version [[FLEXManager sharedManager] showExplorer]; 完整用法: //more complete version ...

    UIScrollView定时滚动和循环滚动,可点击图片和PageController

    UITapGestureRecognizer * gestd = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; [firstImageView addGestureRecognizer:gestd]; for (int i=0; i; i++) { ...

    简单易用的图片浏览器

    这是一款轻量级的图片浏览器demo,效果类似京东淘宝等购物app的商品图片浏览,使用只需要几步很简单的操作:设置图片数组,图片类型和图片索引即可。调用代码如下: #pragma mark - 单击跳转 - (void)browseImage:...

    swift编写简单的左右菜单栏

    // 用户拖动视图调用代理方法。 func panGestureRecognized(panGestureRecognizer:UIPanGestureRecognizer){ // 用户对视图操控的状态。 var state = panGestureRecognizer.state; var location = ...

    iOS实现手指点击出现波纹的效果

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap:)]; [self.view addGestureRecognizer:tap]; - (void)onTap:(UITapGestureRecognizer*)sender { ...

    IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)

    下面通过图文并茂的方式给大家分享下IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)的相关内容。 1、UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地...UITapGestureRecognizer(点按)

    IOS中各种手势操作实例代码

    1、点击 UITapGestureRecognizer 2、平移 UIPanGestureRecognizer 3、缩放 UIPinchGestureRecognizer 4、旋转 UIRotationGestureRecognizer 5、轻扫 UISwipeGestureRecognizer 我们上面这个实例中就用到了上面...

    iOS自定义水平滚动条、进度条

    简单说一下逻辑,新建一个继承UIView的类,分别给轨道、滑块添加UITapGestureRecognizer点击、UIPanGestureRecognizer滑动手势。获取偏移量,计算控件位置,刷新视图。 下面贴上核心代码: 显示视图,在控制器调用...

    iOS 生成图片验证码绘制实例代码

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick:)]; [_pooCodeView addGestureRecognizer:tap]; [self.view addSubview:_pooCodeV

    ios关于手势

    1、拍击UITapGestureRecognizer (任意次数的拍击) 2、向里或向外捏UIPinchGestureRecognizer (用于缩放) 3、摇动或者拖拽UIPanGestureRecognizer 4、擦碰UISwipeGestureRecognizer (以任意方向) 5、旋转...

    iOS开发之手势gesture详解

    在iOS中,你可以使用系统内置的手势识别(GestureRecognizer),也可以创建自己的手势.GestureRecognizer将低级别的转换为高级别的执行行为,是你绑定到view的对象,当发生手势,绑定到的view对象会响应,它确定这个...

    IOS 解决UIButton 点击卡顿/延迟的问题

    前言  一开始还以为代码写的有问题,点击事件里面有... 解决办法:也没什么好办法,换成 ImageView 加 UITapGestureRecognizer 吧,另外奉上点击效果代码 :slightly_smiling_face: class UIImageViewEffect : UIIm

    TVAnimationsGestures-Swift:这是一个简单的可展开可合并的表视图,用Swift语言编写

    本项目展示了如何使用动态来展开或收缩头部表视图的单元格,每节代表了一个表演场次,每个单元格包含了这个表演场次的语录。同样,这个表视图也能够响应用户的手势操作: UITapGestureRecognizer点击手势来展开或...

    iOS开发之手势识别

    我们已经学习了触摸事件处理,但触摸事件处理起来很麻烦,每个触摸事件处理都需要实现3个touches方法,比较繁琐,实际上我们可以使用更加简单的触摸事件处理操作,那就是 手势识别UIGestureRecognizer 。 手势识别...

    IOS 手势操作详解及实例总结篇

    iOS手势操作总结 手势操作种类 UITapGestureRecognizer: 敲击,点击 ...手势操作的代理方法(UIGestureRecognizerDelegate) 手势可能发生的条件,返回NO可以阻止此手势的发生或者此手势不产生任何效果 - (BOOL)gestu

    3D动画 iOS

    let tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:") scnView.addGestureRecognizer(tapGesture) } func handleTap(gestureRecognize: UIGestureRecognizer) { // retrieve the ...

Global site tag (gtag.js) - Google Analytics