写一个例子吧:
ViewController.h里
#import <UIKit/UIKit.h>
@interface ViewController :
UIViewController<UIGestureRecognizerDelegate>
@end
ViewController.m里
#import "ViewController.h"
@interface
ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super
viewDidLoad];
/*单指单击*/
UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerOne.numberOfTouchesRequired =
1; //手指
singleFingerOne.numberOfTapsRequired =
1; //tap次数
singleFingerOne.delegate =
self;
/*单指双击*/
UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerTwo.numberOfTouchesRequired =
1;
singleFingerTwo.numberOfTapsRequired =
2;
singleFingerTwo.delegate =
self;
/*双指单击*/
UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerOne.numberOfTouchesRequired =
2;
doubleFingerOne.numberOfTapsRequired =
1;
doubleFingerOne.delegate =
self;
UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerTwo.numberOfTouchesRequired =
2;
doubleFingerTwo.numberOfTapsRequired =
2;
doubleFingerTwo.delegate =
self;
//如果不加下面的话,当单指双击时,会先调用单指单击中的处理,再调用单指双击中的处理
[singleFingerOne
requireGestureRecognizerToFail:singleFingerTwo];
//双指也是如此
[doubleFingerOne
requireGestureRecognizerToFail:doubleFingerTwo];
[self.view
addGestureRecognizer:singleFingerOne];
[self.view
addGestureRecognizer:singleFingerTwo];
[self.view
addGestureRecognizer:doubleFingerOne];
[self.view
addGestureRecognizer:doubleFingerTwo];
[singleFingerOne
release];
[singleFingerTwo
release];
[doubleFingerOne
release];
[doubleFingerTwo
release];
}
//处理事件的方法:
-(void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"单指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"单指双击");
}
}
-(void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender{
if(sender.numberOfTapsRequired ==
1){
NSLog(@"双指单击");
}else
if (sender.numberOfTapsRequired ==
2){
NSLog(@"双指双击");
}
}
- (void)didReceiveMemoryWarning
{
[super
didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
分享到:
相关推荐
只能使用UIGestureRecognizer的子类识别手势,每一个子类识别一个特定的手势。详细介绍。 这个demo使用了以下七种手势: 1. UITapGestureRecognizer 2. UISwipeGestureRecognizer 3. UIPanGestureRecognizer 4. ...
手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。 1、UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性。 ...
在iOS中,你可以使用系统内置的手势识别(GestureRecognizer),也可以创建自己的手势.GestureRecognizer将低级别的转换为高级别的执行行为,是你绑定到view的对象,当发生手势,绑定到的view对象会响应,它确定这个...
IOS开发之手势响应事件优先级的实例详解 交互响应事件都是通过手势的操作完成的,如点击、或双击、或长按,这些交互都是在视图中完成的,但是不同的视图可能会有不同的交互,有时候就会出现交互响应事件冲突的情况。...
我们已经学习了触摸事件处理,但触摸事件处理起来很麻烦,每个触摸事件处理都需要实现3个touches方法,比较繁琐,实际上我们可以使用更加简单的触摸事件处理操作,那就是 手势识别UIGestureRecognizer 。 手势识别...
IOS中手势操作一般是 UIGestureRecognizer 类的几个手势子类去实现,一般我们用到的手势就这么5种: 1、点击 UITapGestureRecognizer 2、平移 UIPanGestureRecognizer 3、缩放 UIPinchGestureRecognizer 4、旋转...
下面通过图文并茂的方式给...iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。 UIPanGestureRecognizer(拖动) UIPinchGestureRecognizer(捏合) ...
1、拍击UITapGestureRecognizer (任意次数的拍击) 2、向里或向外捏UIPinchGestureRecognizer (用于缩放) 3、摇动或者拖拽UIPanGestureRecognizer 4、擦碰UISwipeGestureRecognizer (以任意方向) 5、旋转...
iOS手势操作总结 手势操作种类 UITapGestureRecognizer: 敲击,点击 ...手势操作的代理方法(UIGestureRecognizerDelegate) 手势可能发生的条件,返回NO可以阻止此手势的发生或者此手势不产生任何效果 - (BOOL)gestu
对于 UITapGestureRecognizer 来说我们一般需要知道该点击手势在屏幕中的位置 (locationInView:self) 对于 UIPanGestureRecognizer 来说我们一般需要知道我们的滑动手势移动了多少距离 (translationInView:pan)...
UITapGestureRecognizer点击手势来展开或收缩头部表视图 UIPinchGestureRecognizer缩放手势允许用户改变单元格的高度 UILongPressGestureRecognizer长按手势允许用户按住表视图的单元格来弹出一个发送邮件的小按钮...
IOS 开发之swift中手势的实例详解 手势操作主要包括如下几类 手势 属性 说明 点击 UITapGestureRecognizer numberOfTapsRequired:点击的次数;numberOfTouchesRequired:点击时有手指数量 设置属性 ...
简单说一下逻辑,新建一个继承UIView的类,分别给轨道、滑块添加UITapGestureRecognizer点击、UIPanGestureRecognizer滑动手势。获取偏移量,计算控件位置,刷新视图。 下面贴上核心代码: 显示视图,在控制器调用...