首页 > 解决方案 > 未调用 UITableView 的触摸应取消功能

问题描述

我有一个表格视图,它在每个 TableView 单元格中有一个 UIImage 和一些 UIButton 对象。当我滚动表格视图时,它总体上工作得很好。但是,如果我触摸其中一个 UIButton 项目来滚动表格视图,则 UIButton 似乎会窃取触摸并且表格视图不会滚动。相反,UIButton 项目似乎被选中。即使用户在开始滚动时触摸按钮,我也希望能够滚动表格视图。所以,我在这里搜索了解决方案,尝试了以下方法。

extension UITableView {

    override public func touchesShouldCancel(in view: UIView) -> Bool {

        print("the touchesShouldCancel function is called.")

        if view is UIButton {
            return true
        }

        return super.touchesShouldCancel(in: view)
    }

}

但是,它不起作用。每当我滚动表格视图时,甚至都不会调用该函数。我在这里想念什么?非常感谢您的意见。谢谢大家。

标签: iosswiftuitableviewuibuttontouchescancelled

解决方案


你需要创建一个UITableView 子类

class SubTbl:UITableView {
   // add your method
}

然后将其分配给 IB 中的该表或在代码中使用它


推荐阅读