您的位置:首页 > 移动开发 > IOS开发

手势识别 ios

2015-09-10 20:53 295 查看
/**
UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中手势。
UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,他有下面一些子类用于处理具体的手势:
1.拍击UITapGestureRecognizer(任意次数的拍击)
2.向里或向外捏 UIPinchGestureRecognizer(用于缩放)
3.摇动或者拖拽 UIPanGestureRecognizer
4.滑动 UISwipeGestureRecoginzer(以任意方向)
5.旋转 UIRotationGestureRecoginzer (手指朝相反方向移动)
6.长按 UILongPressGestureRecoginzer

对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一 个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:
*/

#pragma mark 一个手指,拍击两次手势
-(void)test1{
UITapGestureRecognizer *oneFingerTwoTaps =  [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(oneFingerTwoTaps)];
// Set required taps and number of touches
//敲击次数 随意设,不过一般情况都是不多于2此
[oneFingerTwoTaps setNumberOfTapsRequired:2];
//敲击手指数 随意设,不过要考虑用户使用
[oneFingerTwoTaps setNumberOfTouchesRequired:1];

// Add the gesture to the view
//添加到View
[self.view addGestureRecognizer:oneFingerTwoTaps];
}
//消息方法
-(void)oneFingerTwoTaps
{
NSLog(@"敲击了。。。");
}

#pragma mark 一个手指滑动手势
-(void)test2
{
UISwipeGestureRecognizer *oneFingerSwipeUp = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(oneFingerSwipeUp:)];

//滑动方向<#(UISwipeGestureRecognizerDirection)#>枚举类型
/*
UISwipeGestureRecognizerDirectionRight = 1 << 0,
UISwipeGestureRecognizerDirectionLeft  = 1 << 1,
UISwipeGestureRecognizerDirectionUp    = 1 << 2,
UISwipeGestureRecognizerDirectionDown  = 1 << 3
*/
[oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp ];
[self.view addGestureRecognizer:oneFingerSwipeUp];
}
//消息方法
-(void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer
{
CGPoint point = [recognizer locationInView:self.view];
NSLog(@"上滑 - start location: %f,%f", point.x, point.y);
}

#pragma mark 旋转手势
-(void)test3
{
UIRotationGestureRecognizer *twoFingersRoatate = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(twoFingersRotate:)];
[self.view addGestureRecognizer:twoFingersRoatate];

}
-(void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer
{
NSLog(@"Rotation in degrees since last change: %f", [recognizer rotation] * (180 / M_PI));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: