好的,我在willDisplayCell
方法中实现了自定义动画。当我向上和向下滚动视图时它工作正常。当我点击其中一行时,它将被推送到另一个视图控制器以显示更多详细信息并让用户更新数据。
问题是当用户返回tableview时。我在[tableView reloadData]
内调用了viewWillAppear
方法,以确保显示更新的数据。这将触发我之前设置的动画过渡。
我的问题是:当用户向上/向下滚动桌面视图时,有没有办法只执行动画,而不是在调用reloadData
时?
如果有一种方法可以在willDisplayCell
和scrollViewDidScroll
之间混合或沿着那条线进行混合,那就太棒了。
谢谢!
答案 0 :(得分:3)
最简单的解决方案是添加一个状态标志,告诉willDisplayCell
它是否应该实际动画。
向UITableViewDelegate
添加媒体资源:
@property (nonatomic) BOOL shouldPreventDisplayCellAnimation;
在调用reloadData
之前和之后设置属性:
- (void)viewWillAppear:(BOOL)animated
{
…
self.shouldPreventDisplayCellAnimation = YES;
[self.tableView reloadData];
self.shouldPreventDisplayCellAnimation = NO:
}
修改willDisplayCell
以根据条件
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.shouldPreventDisplayCellAnimation) {
//animate
}
}