UITableView在重新加载时滚动动画

时间:2013-09-20 06:45:40

标签: ios objective-c uitableview animation

我正在尝试在重新加载数据后立即为tableview的内容添加动画效果。 这样做我成功了:

[_tableView reloadData];
[_tableView setContentInset:UIEdgeInsetsMake(-_tableView.contentSize.height, 0, 0, 0)];
[UIView animateWithDuration:kAnimationDuration animations:^{
    [_tableView setContentInset:UIEdgeInsetsMake(35, 0, 0, 0)];
    [_tableView setContentOffset:CGPointMake(0.0f,-35.f)];
}];

但我的动画在不同内容大小上的速度不同(更慢或更快)。 如何调整我的速度并在每次重新加载后拥有完全相同的动画?

1 个答案:

答案 0 :(得分:2)

根据表格视图的内容大小设置动画持续时间。

[_tableView reloadData];
[_tableView setContentInset:UIEdgeInsetsMake(-_tableView.contentSize.height, 0, 0, 0)];

animationDuration = _tableView.contentSize.height * aConstantK;

[UIView animateWithDuration:animationDuration animations:^{
    [_tableView setContentInset:UIEdgeInsetsMake(35, 0, 0, 0)];
    [_tableView setContentOffset:CGPointMake(0.0f,-35.f)];
}];