【发布时间】:2015-04-04 03:39:33
【问题描述】:
我想在内置动画完成后执行一些代码。
我有一个包含很多单元格/行的 UITableView。有时,当我执行一些操作时,我需要滚动到 tableView 的顶部。为此我使用:
tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: true)
但是一旦到达顶部,我需要执行一些代码,例如第一行的简单选择和取消选择。
我从UIScrollViewDelegate 实现了func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView)。它工作正常(或多或少,有时动画不是很流畅,我们看不到选择/取消选择“动画”),除非我已经在 tableView 的顶部,然后 scrollViewDidEndScrollingAnimation 不被调用.
那么有没有办法在调用scrollToRowAtIndexPath:atScrollPosition:animated 后执行一些代码?
编辑:
当我谈论做一些操作时,我谈论的是使用moveRowAtIndexPath:toIndexPath 从UITableView 移动一行。
因此,当需要滚动时,这很好,两个动画花费的时间大致相同。但是当不需要滚动时,我想要在动画之后执行的代码与动画同时开始
【问题讨论】:
-
您是否尝试过将您的后期动画代码放入 scrollViewDidEndDragging() 和/或 scrollViewDidEndDecelerating() 中?
-
是的,我都试过了,在我的情况下它们没有被称为动画
标签: ios uitableview swift animation uiscrollview