`
whui0110
  • 浏览: 84230 次
  • 性别: 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的操作使用类似处理。
分享到:
评论

相关推荐

    swift-快速对常用视图控件添加点击事件

    对于`UIImageView`,同样可以使用`UITapGestureRecognizer`。首先,设置`UIImageView`的`userInteractionEnabled`为`true`: ```swift imageView.isUserInteractionEnabled = true ``` 然后,添加手势识别器并处理...

    UITapGestureTest Demo实例

    在这个"UITapGestureTest Demo实例"中,我们将深入探讨如何使用`UITapGestureRecognizer`来实现点击事件的处理。 首先,`UITapGestureRecognizer`是一个`UIGestureRecognizer`的子类,它监听用户在屏幕上的轻拍动作...

    UIViewController新使用方法源码

    自iOS 5发布以来,这个类引入了一些新的使用方法,极大地增强了UI的管理和交互能力。本篇文章将详细探讨`UIViewController`在iOS 5及后续版本中的新特性,并通过源码解析来深入理解这些功能。 1. **自动旋转和屏幕...

    OC MAC平台 IOS开发APP 自主学习

    四、UITapGestureRecognizer的使用 UITapGestureRecognizer是用于创建点击事件的,例如,可以使用UITapGestureRecognizer来实现UILabel的点击事件跳转。代码如下: ```objective-c UILabel *label1 = [[UILabel ...

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

    除了使用代理方法,还可以通过调整手势识别器的`requireGestureRecognizerToFail(_:)`方法来设置手势之间的依赖关系。这个方法允许你指定一个手势必须失败后,另一个手势才能成功识别。例如,如果你希望在列表视图的...

    使用UIGesture的最佳方式_Swift_Objective-C_下载.zip

    本资源包“使用UIGesture的最佳方式_Swift_Objective-C_下载.zip”包含了Swift和Objective-C两种语言中使用手势识别的最佳实践,以帮助开发者更高效地利用手势增强用户体验。 在Swift中,我们可以按照以下步骤添加...

    ios-CCTapped.zip

    总结起来,`ios-CCTapped.zip`中的内容可能涉及了如何使用Block在Swift中为UIView添加点击事件的实践,包括创建`UITapGestureRecognizer`、设置Block作为动作处理程序,以及可能的自定义扩展以简化代码。这种方法是...

    手势识别器之敲击

    在iOS中,我们可以使用`UITapGestureRecognizer`类来识别这类手势。`UITapGestureRecognizer`是`UIGestureRecognizer`的子类,它会监听并识别屏幕上的点击行为。 实现敲击手势识别的过程通常包括以下几个步骤: 1....

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

    - UITapGestureRecognizer:用于识别轻击(Tap)手势。 - UIPinchGestureRecognizer:处理捏合(Pinch)手势,常用于缩放。 - UIRotationGestureRecognizer:用于识别旋转(Rotation)手势。 - UISwipeGestureRecognizer:...

    多手势操作实现ios图文混排

    例如,可以使用`UITapGestureRecognizer`配合`requireGestureRecognizerToFail:`方法,确保特定手势在其他手势之前被识别,从而避免误触。 具体实现时,我们需要在视图控制器中添加手势识别器,设置其代理,并在...

    swift-一行代码添加文本点击事件(swfit版本)

    在Swift编程语言中,为文本添加点击事件通常是通过创建自定义的`UILabel`子类或者使用`UITapGestureRecognizer`配合`NSAttributedString`来实现的。这里我们将深入探讨如何在Swift中使用一行代码来为文本添加点击...

    非输入区键盘消失的方法

    ### 方法二:使用UIView的`touchesBegan`方法 1. 重写`touchesBegan`方法,当用户在非输入区域触摸时,隐藏键盘: ```swift override func touchesBegan(_ touches: Set, with event: UIEvent?) { super....

    IOS点击标签触发事件

    可以使用`requireGestureRecognizerToFail(_:)`方法来设置手势的优先级。 以上就是在iOS中实现“点击标签触发事件”的详细步骤。通过这些技术,你可以使UILabel具备交互性,提升用户体验。在实际开发中,这种技术常...

    ios-任何view添加点击事件.zip

    在原生的UIKit框架中,我们可以使用`UITapGestureRecognizer`类来监听点击事件。通常,我们需要创建一个`UITapGestureRecognizer`实例,设置其识别的点击次数(比如单击或双击),然后将其添加到目标View上。以下是...

    ios点击键盘以外空白区域隐藏键

    - 在`viewDidLoad`方法中,首先初始化了一个`UITapGestureRecognizer`实例`tapGr`,并通过`target:self action:@selector(viewTapped:)`绑定了回调方法`viewTapped:`。 - 接着,通过`self.view....

    UILabel局部点击

    1. **使用`UITapGestureRecognizer`**: 可以为`UILabel`添加一个`UITapGestureRecognizer`手势识别器。首先,创建一个手势识别器并将其添加到`UILabel`上,然后在手势识别器的回调函数中,通过比较触摸点与文本的...

    自定义tableview实现手势单元_Objective-C_下载.zip

    在`tableView:cellForRowAtIndexPath:`方法中,使用`dequeueReusableCellWithIdentifier:forIndexPath:`获取或创建一个自定义单元格实例,然后配置其内容。 6. **注册单元格** 在你的ViewController中,别忘了在`...

    用于iPhone的简单Objective-C手势识别器_Objective-C_下载.zip

    使用这些手势识别器时,开发者首先需要创建手势实例,然后将其添加到视图上,并设置相应的代理方法来响应手势事件。例如: ```objective-c UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] ...

    ios 图片增加手势

    对于单击全屏和双击放大缩小,我们可以使用UITapGestureRecognizer。首先,为单击事件添加手势识别器: ```swift let singleTapGesture = UITapGestureRecognizer(target: self, action: #selector(handleSingleTap...

Global site tag (gtag.js) - Google Analytics