[英]Touches should cancel function for UITableView is not called
我有一个表格视图,在每个 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)
}
}
但是,它不起作用。 每当我滚动表格视图时,function 甚至都不会被调用。 我在这里想念什么? 非常感谢您的意见。 谢谢大家。
您需要创建一个UITableView
子类
class SubTbl:UITableView {
// add your method
}
然后将其分配给 IB 中的该表或在代码中使用它
子类UITableView
根据Apple 文档将 tableView canCancelContentTouches
设置为true
如果 canCancelContentTouches 属性的值为 false,则滚动视图不会调用此方法
class YourTableView:UITableView {
override func awakeFromNib() {
canCancelContentTouches = true
delaysContentTouches = false
}
override func touchesShouldCancel(in view: UIView) -> Bool {
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.