- (void)initializeSwipeGestureRecognizer {
self.swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[self.calView addGestureRecognizer:self.swipeGestureRecognizer];
}
- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
CGFloat viewWidth = self.view.frame.size.width;
CGFloat viewHeigh = self.view.frame.size.height;
CGPoint startPoint = CGPointMake(0, 0),swipingPoint = CGPointMake(0, 0);
CGFloat dx = 0;
if (recognizer.direction == UISwipeGestureRecognizerDirectionRight) {
if (recognizer.state == UIGestureRecognizerStateBegan) {
startPoint = [recognizer locationInView:self.view];
if (startPoint.x >60) {
return;
}
}
if (recognizer.state == UIGestureRecognizerStateChanged) {
swipingPoint = [recognizer locationInView:self.view];
dx = swipingPoint.x - startPoint.x;
self.calView.frame = CGRectMake(dx, 0, viewWidth, viewHeigh);
if (self.calView.frame.origin.x > viewWidth/8*5) {
return;
}
}
}
}
代码是想实现类似于QQ5.0的侧滑菜单功能:从屏幕左端60像素内手指向右滑动,水平滑动多少距离,self.calView也向右滑动多少,当calView到屏幕八分之五处,手指再向右滑calView也不会滑动了。但是运行起来,不管手指怎么滑,calView都没有反应,看着代码纠结半天了。想不出所以然来就来论坛里请教一下。