UITableViewCell滚动检测

时间:2019-03-27 14:10:33

标签: ios swift uitableview uikit uigesturerecognizer

我在自定义UITableViewCell中有手势识别器,我想在表视图滚动期间禁用它。是否可以在自定义UITableViewCell中检测到表格视图是否在滚动?

2 个答案:

答案 0 :(得分:0)

正如@ jarvis12在评论中提到的,UITableView继承自UIScrollView,您可以利用其委托方法。

  1. 添加一个全局bool变量,该变量将用作检查滚动当前状态的标志。

    var isScrolling = false
    
  2. 添加两个UIScrollView委托方法并更新isScrolling变量,如下所示:

    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        self.isScrolling = true
    }
    
    func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
        self.isScrolling = false
    }
    
  3. 在您的UITableViewCell中,如果有条件,只需添加以下内容:

    if isScrolling {
        //disable pan gesture
    }
    else {
        //enable pan gesture
    }
    

答案 1 :(得分:0)

使用此扩展名可检测iOS Swift中特定的表格视图滚动

extension ViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView == tableName {
            // write logic for tableview disble scrolling
        }
    }
}