scrollViewDidEndScrollingAnimation未调用

时间:2018-01-16 21:14:53

标签: ios swift uitableview uiscrollviewdelegate

我正在尝试在滚动动画完成后调用方法。我有一个表视图,我在viewDidLoad中根据this设置了这个self.tableView.delegate = self的委托,但这没有用。

基本上,如果单击一个按钮,它会向上滚动到特定单元格,如果起始单元格不可见,则在表格视图中将其称为起始单元格。我正在使用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)这很快,答案是Objective-C,和 (2)我尝试从委托中实现方法来检查动画是否完成,但是没有调用它,我需要帮助找出原因

1 个答案:

答案 0 :(得分:3)

这是你需要的吗?

将这些func添加到表视图控制器......

修改:忘记加入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!")
}