基本上,我想在表格视图上方的UIView中向上/向下检测平移手势,同时正常滚动表格视图。
我已经尝试实现pointInside和gestureRecognizer:shouldReceiveTouch :,但是它们在使用时都绕过了手势识别器。
是否可以将相同的触摸发送到两个视图或在处理后通过触摸发送?还是一种不拦截手势就可以追踪手势的一般方法?
答案 0 :(得分:0)
由于UITableView是UIScrollView的后继对象,因此对自己的内部手势有反应。我认为在这种情况下无法实现上/下手势。
答案 1 :(得分:0)
将自己的UIPanGestureRecognizer添加到Tableview中。
通过返回YES使它们并存 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer应该与GestureRecognizer同时识别:(UIGestureRecognizer *)otherGestureRecognizer
即
//setup
UITableView* tableview=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 400, 500)];
tableview.dataSource=self;
[self.view addSubview:tableview];
UIPanGestureRecognizer* pangr=[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(someMethod:)];
pangr.delegate=self;
[tableview addGestureRecognizer:pangr];
.
.
.
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
-(void)someMethod:(UIPanGestureRecognizer*)sender{
CGFloat velocityX = ([sender velocityInView:self.view].x);
CGFloat velocityY = ([sender velocityInView:self.view].y);
NSLog(@"pannig %f %f", velocityX, velocityY);
}
在我的测试中工作正常。
如果确实需要tableview上方的UIView,则可以在那里进行设置并设置userInteractionEnabled=NO