遵守代理UIGestureRecognizerDelegate
-(void)setUpLeftView{
// 屏幕边缘侧拉手势
UIScreenEdgePanGestureRecognizer *edgeGesture = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(handleGesture:)];
edgeGesture.edges = UIRectEdgeLeft;
edgeGesture.delegate = self;
[self.view addGestureRecognizer:edgeGesture];
}
- (void)handleGesture:(UIScreenEdgePanGestureRecognizer *)gesture
{
if(UIGestureRecognizerStateBegan == gesture.state)
{
// 根据被触摸手势的view计算得出坐标值
CGPoint translation = [gesture translationInView:gesture.view];
NSLog(@"%@",NSStringFromCGPoint(translation));
}
else
{
//
NSLog(@"恢复设置");
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
return YES;
}
return NO;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
return YES;
}
return NO;
}