我正在尝试在滚动动画完成后调用方法。我有一个表视图,我在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)我尝试从委托中实现方法来检查动画是否完成,但是没有调用它,我需要帮助找出原因
答案 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!")
}