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

IOS7手势识别

2013-11-17 22:48 218 查看
//添加一个view 给view加上各种手势查看效果

UIView *gestureTestView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)] ;

gestureTestView.backgroundColor = [UIColor greenColor];

//开启UIVIew的事件响应

gestureTestView.userInteractionEnabled = YES;

[self.view addSubview:gestureTestView];

//添加单击手势

UITapGestureRecognizer *tapOne = [[UITapGestureRecognizer alloc]init];

//设置响应事件的点击次数

tapOne.numberOfTapsRequired = 1;

//设置点击手指的个数

tapOne.numberOfTouchesRequired = 1;

//添加事件响应函数

[tapOne addTarget:self action:@selector(tapOneCallBack:)];

//把手势添加到view上

[gestureTestView addGestureRecognizer:tapOne];

//添加双击手势

UITapGestureRecognizer *tapTwo = [[UITapGestureRecognizer alloc]init];

//点击次数

tapTwo.numberOfTapsRequired = 2;

//事件响应函数

[tapTwo addTarget:self action:@selector(tapTwoCallBack:)];

//优先响应双击事件,双击时单击事件不识别

[tapOne requireGestureRecognizerToFail:tapTwo];

//把手势添加到View

[gestureTestView addGestureRecognizer:tapTwo];

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]init];

[panGesture addTarget:self action:@selector(panCallBack:)];

[gestureTestView addGestureRecognizer:panGesture];

//创建缩放手势

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]init];

[pinch addTarget:self action:@selector(pinch:)];

// pinch.delegate = self;//设不设置代理都可以

[gestureTestView addGestureRecognizer:pinch];

//创建旋转手势

UIRotationGestureRecognizer *rot = [[UIRotationGestureRecognizer alloc]init];

[rot addTarget:self action:@selector(rotAction:)];

//rot.delegate = self;

[gestureTestView addGestureRecognizer:rot];

// Do any additional setup after loading the view.

}

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

{

return YES ;//return NO 可以同时响应多个手势,但是有时会失败,return YES 能准确响应各个事件 ,点击后响应的事件为识别的第一个手势,其他手势无效

//需要继承代理协议 <UIGestureRecognizerDelegate>

}

-(void)pinch:(UIPinchGestureRecognizer *)pinch1

{

pinch1.view.transform = CGAffineTransformScale(pinch1.view.transform, pinch1.scale, pinch1.scale);

pinch1.scale = 1.0;//默认1

}

-(void)rotAction:(UIRotationGestureRecognizer *)rot

{

rot.view.transform = CGAffineTransformRotate(rot.view.transform, rot.rotation);

rot.rotation = 0;//默认0;

}

-(void)panCallBack:(UIPanGestureRecognizer *)pan

{

UIView *gestureView = (UIView *)pan.view;

CGPoint point = [pan translationInView:self.view];

gestureView.frame = CGRectMake(point.x, point.y, 200, 200);

}

static bool isFirstTap = true;

-(void)tapOneCallBack:(UITapGestureRecognizer *)tapOne

{

UIView *gestureTestView = (UIView *)tapOne.view;

if (isFirstTap) {

gestureTestView.frame = CGRectMake(100, 100,100,100);

isFirstTap = false;

}else

{

isFirstTap = true;

gestureTestView.frame = CGRectMake(100, 100, 200, 200);

}

}

-(void)tapTwoCallBack:(UIGestureRecognizer *)tapTwo

{

UIView *gestureTestView = (UIView *)tapTwo.view;

if (isFirstTap) {

gestureTestView.frame = CGRectMake(100, 100,100,100);

isFirstTap = false;

}else

{

isFirstTap = true;

gestureTestView.frame = CGRectMake(100, 100, 200, 200);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: