处理 UITableView 单元格上的平移手势

Posted

技术标签:

【中文标题】处理 UITableView 单元格上的平移手势【英文标题】:Handle Pan Gesture on UITableView cell 【发布时间】:2017-11-21 07:20:51 【问题描述】:

我将MARKRangeSlider 添加到 UITableViewCell 并按预期工作。拖动手柄时,表格视图控制器也弹出到前一个视图控制器。如何避免或阻止弹出的动作?

我通过添加委托尝试了以下代码,但未能达到结果。

 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
         // CGPoint velocity = [panGestureRecognizer  velocityInView:panGestureRecognizer.view];
         // return fabs(velocity.y) > fabs(velocity.x);
        CGPoint translation = [(UIPanGestureRecognizer *)gestureRecognizer translationInView:gestureRecognizer.view.superview];
        // if you want an NSString
        NSLog(@"gestureRecognizer-superview %@", NSStringFromClass([gestureRecognizer.view.superview class]) );
        return fabs(translation.x) > fabs(translation.y);
    


- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    if (otherGestureRecognizer == leftPanRecognizer) 
        return YES;
    
    if (otherGestureRecognizer == rightPanRecognizer) 
        return YES;
    
    return NO;

它的间歇性问题。请告诉我如何处理?

提前致谢

【问题讨论】:

【参考方案1】:

我找到了解决办法,

在具有UITableViewUITableViewControllerUIViewController 中必须禁用 interactivePopGestureRecognizerviewDidAppear相同 控制器开发人员必须viewWillDisAppear 中启用 interactivePopGestureRecognizer。希望对您有所帮助。

【讨论】:

以上是关于处理 UITableView 单元格上的平移手势的主要内容,如果未能解决你的问题,请参考以下文章