iOS开发中手势识别

iOS开发中手势识别有六种:


轻击手势(TapGestureRecognizer),

轻扫手势(SwipeGestureRecognizer),

长按手势(LongPressGestureRecognizer),

拖动手势(PanGestureRecognizer),

捏合手势(PinchGestureRecognizer),

旋转手势(RotationGestureRecognizer),


1,轻击手势(TapGestureRecognizer)





UITapGestureRecognizer*tapGesture=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tapGesture:)];

tapGesture.numberOfTapsRequired=1;//点击次数

tapGesture.numberOfTouchesRequired=1;//点击手指数

[self.viewaddGestureRecognizer:tapGesture];

//轻击手势触发方法

-(void)tapGesture:(UITapGestureRecognizer*)sender

{

//yourcode

}

2,长按手势(LongPressGestureRecognizer)

UILongPressGestureRecognizer*longPressGesture=[[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longPressGesture:)];

//设置长按时间

longPressGesture.minimumPressDuration=0.5;

[self.viewaddGestureRecognizer:longPressGesture];

//长按手势触发方法

-(void)longPressGesture:(id)sender

{

UILongPressGestureRecognizer*longPress=sender;

if(longPress.state==UIGestureRecognizerStateBegan)

{

//yourcode

}

}

说明:长按手势的常用状态如下

开始:UIGestureRecognizerStateBegan

改变:UIGestureRecognizerStateChanged

结束:UIGestureRecognizerStateEnded

取消:UIGestureRecognizerStateCancelled

失败:UIGestureRecognizerStateFailed

3,轻扫手势(SwipeGestureRecognizer)

UISwipeGestureRecognizer*swipeGesture=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipeGesture:)];

//设置轻扫的方向

swipeGesture.direction=UISwipeGestureRecognizerDirectionRight;//向右

[self.viewaddGestureRecognizer:swipeGesture];

UISwipeGestureRecognizer*swipeGestureLeft=[[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipeGesture:)];

//设置轻扫的方向

swipeGestureLeft.direction=UISwipeGestureRecognizerDirectionLeft;//向左

[self.viewaddGestureRecognizer:swipeGestureLeft];

//轻扫手势触发方法

-(void)swipeGesture:(id)sender

{

UISwipeGestureRecognizer*swipe=sender;

if(swipe.direction==UISwipeGestureRecognizerDirectionLeft)

{

//向左轻扫

}

if(swipe.direction==UISwipeGestureRecognizerDirectionRight)

{

//向右轻扫

}

}

4,捏合手势(PinchGestureRecognizer)

UIPinchGestureRecognizer*pinchGesture=[[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(pinchGesture:)];

[self.viewaddGestureRecognizer:pinchGesture];

捏合手势触发方法

-(void)pinchGesture:(id)sender

{

UIPinchGestureRecognizer*gesture=sender;

//手势改变时

if(gesture.state==UIGestureRecognizerStateChanged)

{

//捏合手势中scale属性记录的缩放比例

_imageView.transform=CGAffineTransformMakeScale(gesture.scale,gesture.scale);

}

//结束后恢复

if(gesture.state==UIGestureRecognizerStateEnded)

{

[UIViewanimateWithDuration:0.5animations:^{

_imageView.transform=CGAffineTransformIdentity;//取消一切形变

}];

}

}

5,拖动手势(PanGestureRecognizer)

UIPanGestureRecognizer*panGesture=[[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(panGesture:)];

[self.viewaddGestureRecognizer:panGesture];

//拖动手势触发方法

-(void)panGesture:(id)sender

{

UIPanGestureRecognizer*panGesture=sender;

CGPointmovePoint=[panGesturetranslationInView:self.view];

//yourcode

}

6,旋转手势(RotationGestureRecognizer)

UIRotationGestureRecognizer*rotationGesture=[[UIRotationGestureRecognizeralloc]initWithTarget:selfaction:@selector(rotationGesture:)];

[self.viewaddGestureRecognizer:rotationGesture];

//旋转手势触发方法

-(void)rotationGesture:(id)sender

{

UIRotationGestureRecognizer*gesture=sender;

if(gesture.state==UIGestureRecognizerStateChanged)

{

_imageView.transform=CGAffineTransformMakeRotation(gesture.rotation);

}

if(gesture.state==UIGestureRecognizerStateEnded)

{

[UIViewanimateWithDuration:1animations:^{

_imageView.transform=CGAffineTransformIdentity;//取消形变

}];

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值