我正在修改一个基本上是标准隐藏左侧菜单的模块(向右滑动以显示菜单)
此菜单系统的标准行为是阻止左侧的任何滑动,从而限制了向左滑动以删除tableview中的行的功能。
我添加了此代码,其中成功打开了向左滑动以删除表格中的行的功能。
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if([otherGestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]])
{
}
return YES;
}
问题是,现在它还允许菜单在任何类型的向右滑动时打开。因此,举例来说,如果你向下滚动,但碰巧向右下方略微向下滚动,菜单就会毫无意义地打开。它非常讨厌
在这里添加适当的代码片段以阻止滑动右手势?
似乎'返回YES'正在打开额外的手势,但我正在努力寻找一种方法在向右滑动时返回NO。原始代码实际上有另一部分,但它似乎没有做任何不同的事情。
在我看来,正是“回归是”正在打开这种行为。如果我能找到一种方法在向右滑动时返回NO可能会这样做吗?
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if([otherGestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]])
{
UISwipeGestureRecognizer *recog = (UISwipeGestureRecognizer *)otherGestureRecognizer;
if(recog.direction == UISwipeGestureRecognizerDirectionLeft && [recog.view isKindOfClass:[UITableViewCell class]]) return NO;
}
return YES;
}
答案 0 :(得分:0)
你可以尝试这个技巧。向MenuView
添加新的UIGestureRecognizer
,并在内容中添加UITableView
。
selector
当然对于gestureRecognizer的选择器:
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(myMethod:)];
swipe.direction = UISwipeGestureRecognizerDirectionRight;
[self.tableView addGestureRecognizer:swipe];