【问题标题】:scrollViewDidEndScrollingAnimation not called未调用 scrollViewDidEndScrollingAnimation
【发布时间】:2018-01-16 21:14:53
【问题描述】:

我试图在我的滚动动画完成后调用一个方法。我有一个表视图,我在 viewDidLoad 中设置了委托,例如 thisself.tableView.delegate = self 基于 this ,但这没有帮助。

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

【问题讨论】:

标签: ios swift uitableview uiscrollviewdelegate


【解决方案1】:

这是你需要的吗?

将这些函数添加到您的表格视图控制器...

编辑:忘记包含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!")
}

【讨论】:

  • 我的函数声明错误。我没有覆盖或下划线
  • 另外,我忘了添加 scrollViewDidEndScrollingAnimation func 覆盖(.scrollToRow() 需要)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
相关资源
最近更新 更多