UITableViewCell 滚动检测
Posted
技术标签:
【中文标题】UITableViewCell 滚动检测【英文标题】:UITableViewCell scroll detecting 【发布时间】:2019-03-27 14:10:33 【问题描述】:我在自定义UITableViewCell
中有手势识别器,我想在表格视图滚动期间禁用它。是否可以在自定义UITableViewCell
中检测到表格视图是否正在滚动?
【问题讨论】:
因为 UITableview 继承了滚动视图,你可以在滚动发生时使用滚动视图委托方法scrollViewDidScroll
。
如何在表格视图单元格中发送此信息?
【参考方案1】:
在 ios Swift 中使用这个扩展来检测特定的 tableview 滚动
extension ViewController: UIScrollViewDelegate
func scrollViewDidScroll(_ scrollView: UIScrollView)
if scrollView == tableName
// write logic for tableview disble scrolling
【讨论】:
【参考方案2】:正如@jarvis12 在评论中提到的,UITableView
继承自UIScrollView
,您可以利用它的委托方法。
添加一个全局 bool 变量,该变量将用作检查当前滚动状态的标志。
var isScrolling = false
添加两个UIScrollView
委托方法并更新isScrolling
变量如下:
func scrollViewWillBeginDragging(_ scrollView: UIScrollView)
self.isScrolling = true
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
self.isScrolling = false
在您的UITableViewCell
中只需添加以下 if 条件:
if isScrolling
//disable pan gesture
else
//enable pan gesture
【讨论】:
感谢您的回答。我有CustomTableViewCell
,它继承了UITableViewCell
。 isScrolling
在ViewController
中,平移手势在自定义单元格中,如何从 VC 获取此信息?
您介意在您的问题中添加代码以显示您在哪里添加手势吗?以上是关于UITableViewCell 滚动检测的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 中 UIButton 的 NSIndexPath
如何在 UITableViewCell 上使用 CAGradientLayers
如何在 UITableViewCell 中添加多行文本字段?
当附件是UITableViewCellAccessoryCheckmark时,如何将文本置于UITableViewCell中