
UIGestureRecognizer类,用来检测,识别用户使用设备时所用的手势,定义了所有手势的基本行为.以下是UIGestureRecognizer子类,哟关于处理具体的用户手势行为。
单击手势
单击手势
UITapGestureRecognizer
UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(singleTap:)];
[self.view addGestureRecognizer:singleTap];
//单击事件
-(void)singleTap:(UITapGestureRecognizer *)tapgestrue
{
NSLog(@"单击");
}
双击手势
UITapGestureRecognizer
UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired=2;
[self.view addGestureRecognizer:doubleTap];
//区别单击双击手势
[singleTap requireGestureRecognizerToFail:doubleTap];
//双击点击事件
-(void)doubleTap:(UITapGestureRecognizer *)taggestrue
{
NSLog(@"双击");
}
轻扫手势
UISwipeGestureRecognizer *swipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)];
//设置轻扫方向,默认向右 swipeGesture.direction=UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:swipeGesture];
//轻扫事件
-(void)swipe:(UISwipeGestureRecognizer *)swipeGesture
{
NSLog(@"轻扫手势");
}
//平移
UIPanGestureRecognizer *panGesture=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
[self.view addGestureRecognizer:panGesture];
//平移事件
-(void)pan:(UIPanGestureRecognizer *)pan
{
CGPoint point=[pan locationInView:self.view];
NSLog(@"%@",NSStringFromCGPoint(point));
}
//长按手势
UILongPRessGestureRecognizer *longPressGesture=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
longPressGesture.minimumPressDuration=2;
[self.view addGestureRecognizer:longPressGesture];
//长按手势事件
-(void)longPress:(UILongPressGestureRecognizer *)longPress
{
//长按离开时一会调用一次,所以需要设置手势状态
if(longPress.state==UIGestureRecognizerStateEnded)
{
return;
}
NSLog(@"长按超过两秒");
}
//旋转手势
UIRotationGestureRecognizer *rotation=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];
[self.view addGestureRecognizer:rotation];
//旋转事件
-(void)rotation:(UIRotationGestureRecognizer *)rotation
{
//根据旋转的弧度获得角度
float degree=rotation.rotation*(180/M_PI);
NSLog(@"%f",degree);
}