iOS 手势集合
2015-12-30 17:44
357 查看
#import "ViewController.h"
@interface ViewController ()
{
UIImageView *imageView;
UILabel *label;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
//背景图片设置
imageView=[[UIImageView
alloc]initWithFrame:[UIScreen
mainScreen].bounds];
imageView.image=[UIImage
imageNamed:@"jay.jpg"];
[self.view
addSubview:imageView];
imageView.userInteractionEnabled=YES;
//将手势类型显示在Label上
label=[[UILabel
alloc]initWithFrame:CGRectMake(100,
self.view.frame.size.height-50,
200, 50)];
label.backgroundColor=[UIColor
grayColor];
[imageView addSubview:label];
label.textAlignment=NSTextAlignmentCenter;
label.textColor=[UIColor
greenColor];
//1.一只手单击
UITapGestureRecognizer *tap=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapAction:)];
[imageView
addGestureRecognizer:tap];
//2.一只手双击
UITapGestureRecognizer *tapDouble=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapDoubleAction:)];
//点击次数
tapDouble.numberOfTapsRequired=2;
[imageView
addGestureRecognizer:tapDouble];
//解决单双击冲突
双击生效的时候让单击手势失效
[tap requireGestureRecognizerToFail:tapDouble];
//3.两只手单击
UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired=1;
//手指个数
doubleTap.numberOfTouchesRequired=2;
[imageView
addGestureRecognizer:doubleTap];
//4.两只手双击
UITapGestureRecognizer *doubleTapDouble=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(doubleTapDouble:)];
//设置点击次数
doubleTapDouble.numberOfTapsRequired=2;
//手指个数
doubleTapDouble.numberOfTouchesRequired=2;
[imageView addGestureRecognizer:doubleTapDouble];
[doubleTap requireGestureRecognizerToFail:doubleTapDouble];
//5.向左轻扫手势
UISwipeGestureRecognizer *swipeLeft=[[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeLeftAction:)];
//滑动方向
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[imageView
addGestureRecognizer:swipeLeft];
//6.向右轻扫手势
UISwipeGestureRecognizer *swipeRight=[[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeRightAction:)];
swipeRight.direction=UISwipeGestureRecognizerDirectionRight;
[imageView
addGestureRecognizer:swipeRight];
//7.移动
UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer
alloc]initWithTarget:self
action:@selector(panAction:)];
[imageView
addGestureRecognizer:pan];
//解决轻扫和移动的冲突:
只有轻扫生效的时候才让移动失效
[pan requireGestureRecognizerToFail:swipeLeft];
[pan requireGestureRecognizerToFail:swipeRight];
//旋转和捏合手势不能同时响应,二选一
//8.旋转
UIRotationGestureRecognizer *rotate=[[UIRotationGestureRecognizer
alloc]initWithTarget:self
action:@selector(rotateAction:)];
[imageView
addGestureRecognizer:rotate];
//9.捏合
UIPinchGestureRecognizer *pin=[[UIPinchGestureRecognizer
alloc]initWithTarget:self
action:@selector(pinchAction:)];
[imageView
addGestureRecognizer:pin];
[pin requireGestureRecognizerToFail:rotate];
//10.长按手势
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer
alloc]initWithTarget:self
action:@selector(longPress:)];
[imageView
addGestureRecognizer:longPress];
}
//1.一只手单击
-(void)tapAction:(UITapGestureRecognizer *)tapGesture{
label.text=@"一只手单击";
NSLog(@"%@",label);
}
//2.一只手双击
-(void)tapDoubleAction:(UITapGestureRecognizer *)tapDoubleGesture{
label.text=@"一只手双击";
NSLog(@"%@",label);
}
//3.两只手单击
-(void)doubleTap:(UITapGestureRecognizer *)doubleTap{
label.text=@"两只手单击";
NSLog(@"两只手单击");
}
//4.两只手双击
-(void)doubleTapDouble:(UITapGestureRecognizer *)doubleTap{
label.text=@"两只手双击";
NSLog(@"两只手双击");
}
//5.向左轻扫手势
-(void)swipeLeftAction:(UITapGestureRecognizer *)left{
label.text=@"向左轻扫";
NSLog(@"%@",label);
}
//6.向右轻扫
-(void)swipeRightAction:(UITapGestureRecognizer *)left{
label.text=@"向右轻扫";
NSLog(@"%@",label);
}
//7.移动
-(void)panAction:(UIPanGestureRecognizer *)pan{
label.text=@"移动";
NSLog(@"%@",label);
}
//8.旋转
-(void)rotateAction:(UIRotationGestureRecognizer *)rotate{
//正在旋转
if(rotate.state==UIGestureRecognizerStateChanged){
//取得弧度
CGFloat radius=rotate.rotation;
rotate.view.transform=CGAffineTransformMakeRotation(radius);
}else
if(rotate.state==UIGestureRecognizerStateEnded){
//还原transform
[UIView animateWithDuration:0.35
animations:^{
rotate.view.transform=CGAffineTransformIdentity;
}];
}
label.text=@"旋转";
}
//9.捏合
-(void)pinchAction:(UIPinchGestureRecognizer *)pinch{
if(pinch.state==UIGestureRecognizerStateChanged){
//取得缩放的比例
CGFloat scale=pinch.scale;
pinch.view.transform=CGAffineTransformMakeScale(scale, scale);
}else
if(pinch.state==UIGestureRecognizerStateEnded){
[UIView animateWithDuration:0.35
animations:^{
pinch.view.transform=CGAffineTransformIdentity;
}];
}
label.text=@"捏合";
}
//10.长按手势
-(void)longPress:(UILongPressGestureRecognizer *)longPress{
label.text=@"长按手势";
NSLog(@"长按手势");
}
@end
@interface ViewController ()
{
UIImageView *imageView;
UILabel *label;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
//背景图片设置
imageView=[[UIImageView
alloc]initWithFrame:[UIScreen
mainScreen].bounds];
imageView.image=[UIImage
imageNamed:@"jay.jpg"];
[self.view
addSubview:imageView];
imageView.userInteractionEnabled=YES;
//将手势类型显示在Label上
label=[[UILabel
alloc]initWithFrame:CGRectMake(100,
self.view.frame.size.height-50,
200, 50)];
label.backgroundColor=[UIColor
grayColor];
[imageView addSubview:label];
label.textAlignment=NSTextAlignmentCenter;
label.textColor=[UIColor
greenColor];
//1.一只手单击
UITapGestureRecognizer *tap=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapAction:)];
[imageView
addGestureRecognizer:tap];
//2.一只手双击
UITapGestureRecognizer *tapDouble=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapDoubleAction:)];
//点击次数
tapDouble.numberOfTapsRequired=2;
[imageView
addGestureRecognizer:tapDouble];
//解决单双击冲突
双击生效的时候让单击手势失效
[tap requireGestureRecognizerToFail:tapDouble];
//3.两只手单击
UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired=1;
//手指个数
doubleTap.numberOfTouchesRequired=2;
[imageView
addGestureRecognizer:doubleTap];
//4.两只手双击
UITapGestureRecognizer *doubleTapDouble=[[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(doubleTapDouble:)];
//设置点击次数
doubleTapDouble.numberOfTapsRequired=2;
//手指个数
doubleTapDouble.numberOfTouchesRequired=2;
[imageView addGestureRecognizer:doubleTapDouble];
[doubleTap requireGestureRecognizerToFail:doubleTapDouble];
//5.向左轻扫手势
UISwipeGestureRecognizer *swipeLeft=[[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeLeftAction:)];
//滑动方向
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[imageView
addGestureRecognizer:swipeLeft];
//6.向右轻扫手势
UISwipeGestureRecognizer *swipeRight=[[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeRightAction:)];
swipeRight.direction=UISwipeGestureRecognizerDirectionRight;
[imageView
addGestureRecognizer:swipeRight];
//7.移动
UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer
alloc]initWithTarget:self
action:@selector(panAction:)];
[imageView
addGestureRecognizer:pan];
//解决轻扫和移动的冲突:
只有轻扫生效的时候才让移动失效
[pan requireGestureRecognizerToFail:swipeLeft];
[pan requireGestureRecognizerToFail:swipeRight];
//旋转和捏合手势不能同时响应,二选一
//8.旋转
UIRotationGestureRecognizer *rotate=[[UIRotationGestureRecognizer
alloc]initWithTarget:self
action:@selector(rotateAction:)];
[imageView
addGestureRecognizer:rotate];
//9.捏合
UIPinchGestureRecognizer *pin=[[UIPinchGestureRecognizer
alloc]initWithTarget:self
action:@selector(pinchAction:)];
[imageView
addGestureRecognizer:pin];
[pin requireGestureRecognizerToFail:rotate];
//10.长按手势
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer
alloc]initWithTarget:self
action:@selector(longPress:)];
[imageView
addGestureRecognizer:longPress];
}
//1.一只手单击
-(void)tapAction:(UITapGestureRecognizer *)tapGesture{
label.text=@"一只手单击";
NSLog(@"%@",label);
}
//2.一只手双击
-(void)tapDoubleAction:(UITapGestureRecognizer *)tapDoubleGesture{
label.text=@"一只手双击";
NSLog(@"%@",label);
}
//3.两只手单击
-(void)doubleTap:(UITapGestureRecognizer *)doubleTap{
label.text=@"两只手单击";
NSLog(@"两只手单击");
}
//4.两只手双击
-(void)doubleTapDouble:(UITapGestureRecognizer *)doubleTap{
label.text=@"两只手双击";
NSLog(@"两只手双击");
}
//5.向左轻扫手势
-(void)swipeLeftAction:(UITapGestureRecognizer *)left{
label.text=@"向左轻扫";
NSLog(@"%@",label);
}
//6.向右轻扫
-(void)swipeRightAction:(UITapGestureRecognizer *)left{
label.text=@"向右轻扫";
NSLog(@"%@",label);
}
//7.移动
-(void)panAction:(UIPanGestureRecognizer *)pan{
label.text=@"移动";
NSLog(@"%@",label);
}
//8.旋转
-(void)rotateAction:(UIRotationGestureRecognizer *)rotate{
//正在旋转
if(rotate.state==UIGestureRecognizerStateChanged){
//取得弧度
CGFloat radius=rotate.rotation;
rotate.view.transform=CGAffineTransformMakeRotation(radius);
}else
if(rotate.state==UIGestureRecognizerStateEnded){
//还原transform
[UIView animateWithDuration:0.35
animations:^{
rotate.view.transform=CGAffineTransformIdentity;
}];
}
label.text=@"旋转";
}
//9.捏合
-(void)pinchAction:(UIPinchGestureRecognizer *)pinch{
if(pinch.state==UIGestureRecognizerStateChanged){
//取得缩放的比例
CGFloat scale=pinch.scale;
pinch.view.transform=CGAffineTransformMakeScale(scale, scale);
}else
if(pinch.state==UIGestureRecognizerStateEnded){
[UIView animateWithDuration:0.35
animations:^{
pinch.view.transform=CGAffineTransformIdentity;
}];
}
label.text=@"捏合";
}
//10.长按手势
-(void)longPress:(UILongPressGestureRecognizer *)longPress{
label.text=@"长按手势";
NSLog(@"长按手势");
}
@end
相关文章推荐
- ios 运行时环境的应用
- iOS开发动画(Animation)图片360度不停旋转
- 【iOS】导航、Tabbar、tableview配合使用时,tableview错位的问题
- iOS Autolayout -- scrollview
- iOS9搜索三剑客之NSUserActivity
- ios上关于编译MP4v2静态库的问题
- ios 程序判断是否第一次启动
- KVC运用
- iOS之身份证的正则校验
- iOS捕捉home键事件
- iOS视图间的最小距离如何在Auto Layout 下进行设置?
- iOS开源项目之 日志框架CocoaLumberjack
- iOS8使用TestFlight进行内部测试功能尝鲜
- iOS修改导航条title字体颜色
- iOS开发系列--地图与定位
- iOS9 搜索API
- iOS通过dSYM文件分析crash
- iOS移除所有的子View
- 仿IOS效果-带弹簧动画的ListView
- 仿IOS效果-带弹簧动画的ListView