首页 文章

禁用UITableView浮动节 Headers 点击?

提问于
浏览
3

我有一个简单风格的UITableView与自定义节 Headers 视图(6.0之前,所以不是UITableViewHeaderFooterView) . 有些可以被窃听,有些则不能 . 当它们浮动在其他单元格上方的表格视图的顶部时,点击通过 Headers 部分到下面的表格视图单元格 . 由于应用程序中其他位置的此视图的重用要求,节 Headers 视图是UITableViewCell的子类 . 有没有办法阻止触摸通过?

如果我将节 Headers 视图的子类更改为UIView而不是UITableViewCell,则问题就会消失 . 然而,该解决方案由于其他原因是不可行的 . UITableViewCell中是否有一些我可以禁用的特殊行为?

3 回答

  • 0

    看一下 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 实例方法here .

    您可以在UIView子类中覆盖此方法,并返回要响应触摸的视图 .

    使用这种方法:

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    {
        id hitView = [super hitTest:point withEvent:event];
    
        if (hitView == self) {
            return nil;
        } else {
            return hitView;
        }
    }
    

    希望这可以帮助 .

  • 2

    如果您有权访问节 Headers 视图,只需启用用户交互 false

  • 2

    我有同样的情况 . 我最终将UIButton放在我的自定义 Headers 单元格中的其他内容之下,并使其成为整个单元格的大小并使其融入 .

    现在它捕获了水龙头并且什么都不做,阻止了通过它下面的细胞 . 希望这可以帮助 .

相关问题