2013-09-20 2 views
1

Я пытаюсь анимировать содержимое таблицы прямо после того, как мои данные перезагружены. мне удастся, делая это:UITableView прокрутка анимации при перезагрузке

[_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)]; 
}]; 

Но моя анимация не имеет ту же скорость на разного размера контента (быстрее или медленнее). Как настроить скорость и иметь точно такую ​​же анимацию после каждой перезагрузки?

ответ

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)]; 
}]; 
Смежные вопросы