草庐IT

objective-c - UITableViewCellContentView 上的 shouldReceiveTouch

coder 2023-07-27 原文

我试图通过以下方式忽略 UITapGestureRecognizer 在 UITableView 上的点击:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
      if ([touch.view isKindOfClass:[UITableViewCellContentView class]]) {
          return NO; // ignore the touch
      }
      return YES; // handle the touch
}

它不会编译:“使用未声明的标识符‘UITableViewCellContentView’

无证类?需要子类化吗?更好的方法来完成这个?

感谢您的帮助。

最佳答案

这似乎可以做到:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if([touch.view isKindOfClass:[UITableViewCell class]]) {
         return NO;
    }
    // UITableViewCellContentView => UITableViewCell
    if([touch.view.superview isKindOfClass:[UITableViewCell class]]) {
         return NO;
    }
    // UITableViewCellContentView => UITableViewCellScrollView => UITableViewCell
    if([touch.view.superview.superview isKindOfClass:[UITableViewCell class]]) {
         return NO;
    }
    return YES; // handle the touch
}

关于objective-c - UITableViewCellContentView 上的 shouldReceiveTouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13275195/

有关objective-c - UITableViewCellContentView 上的 shouldReceiveTouch的更多相关文章

随机推荐