未调用 scrollViewDidEndScrollingAnimation

scrollViewDidEndScrollingAnimation not called

我正在尝试在滚动动画完成后调用一个方法。我有一个 Table 视图,我在 viewDidLoad 中设置委托,像这样 self.tableView.delegate = self 基于 ,但这没有帮助。

基本上,如果单击一个按钮,它会向上滚动到一个特定的单元格,如果起始单元格不可见,我们将其称为起始单元格,在 table 视图中。我正在使用滚动和动画的 scrollToRow 方法

tableViewController.tableView.scrollToRow(at: IndexPath(row: techniqueNo, section: 0), at: UITableViewScrollPosition.top, animated: true)

完成此滚动动画后,我想将动画添加到起始单元格。我尝试从滚动视图委托中添加这个方法,但它没有被调用

func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
    print("animation Complete")
}

知道为什么这个方法没有被调用吗?

注意:这与 UITableView is done scrolling 不同,因为 (1) 这是 swift,答案是 Objective-C,并且 (2) 我已经尝试从委托中实现方法来检查动画是否完成,但它没有被调用,我需要帮助找出原因

这是你需要的吗?

将这些功能添加到您的 table 视图控制器...

编辑: 忘记包含 scrollViewDidEndScrollingAnimation ...

override func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
    scrollingFinish()
}

override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    scrollingFinish()
}

override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
    if !decelerate {
        scrollingFinish()
    }
}

func scrollingFinish() -> Void {
    print("Scroll Finished!")
}