objective-c - UIGestureRecognizer 阻止 tableview 滚动

标签 objective-c ios uitableview uigesturerecognizer

我有一张包含静态单元格的表格。其中一个单元格中有一个 View ,上面有一个平移手势识别器。

当我向下滚动我的表格 View 时,当我到达带有平移手势识别器的 View 的单元格时,滚动似乎不起作用。如果我触摸 View 外部(到侧面或顶部或底部)它会起作用并且我可以滚动。我的 gesturerecognizer 中有一个 if 语句,用于测试某个区域是否已被触摸,如果是则执行操作。

我看过这个问题 (http://stackoverflow.com/questions/3295239/uigesturerecognizer-blocking-table-view-scrolling),但是将 cancelsTouchesInView 设置为 NO 没有用,我没有任何地方可以设置state 属性和使用方法 我不知道从哪里获取“otherGestureRecognizer”或在哪个对象上调用该方法。

我假设我不想将我的手势识别器作为第一个参数,而将 tableview 的滚动手势识别器作为 otherGestureRecogniser,是否正确?如果是这样,我如何获得它?

UIPanGestureRecognizer *windPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveWindHandle:)];

[self.windRangeView addGestureRecognizer:windPanGesture];

然后在我的 moveWindHandle 中:

 -(void)moveWindHandle:(UIPanGestureRecognizer *)gesture
{
    gesture.cancelsTouchesInView = NO;
    isMovingHandle = [self isPoint:startedTouchAt insideHandle:_toHandleWindImageView];
    if(isMovingHandle) {

        if(gesture.state == UIGestureRecognizerStateBegan) {
            //do stuff
        }
    } 
    else
    {
        //i want it to ignore this gesture and just scroll like normal if that is what hte user did
    }
}

我已将 tableviewcontroller 设置为 UIGestureRecognizerDelegate,但我不知道该怎么做。

最佳答案

您不会是调用 -gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 的人。该方法由系统调用。您需要将表格 View Controller 设置为窗口平移手势的委托(delegate)。

windPanGesture.delegate = self;

此时,当您进行平移时,系统将调用委托(delegate)方法 -gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:,将您的手势识别器作为一个参数,将 ScrollView 的手势识别器作为另一个参数。


更新

您可能还想实现 -gestureRecognizerShouldBegin: 方法并在您不在某些区域中时返回 NO。

关于objective-c - UIGestureRecognizer 阻止 tableview 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818215/

相关文章:

ios - 点击或长按单元格下方

java - java代码对应的swift中的web服务请求

ios - 不同 iOS 版本中图像的名称

iphone - UIView 在 UITableViewController 的中心

objective-c - 如何在 objective-c 中将字节值转换为 int

ios - 如何获取主机名/IP 地址的 CNAME

ios - 如何编辑 TableView 单元格中图像的位置?

ios - UITableView GADBannerView

objective-c - 基于对象状态从 UITableView 到 DetailView 的条件 Segue

ios - SKSpriteNode 忽略物理停用