как сделать смещение tableView стать нулевым? - PullRequest
0 голосов
/ 02 августа 2011

У меня есть TableView, у которого так много TableViewCell, но в конце TableView я хочу сделать код, который сделает смещение табличного представления равным нулю, поэтому табличное представление возвращается к началу

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (scrollView.contentOffset.y <=-30) {
    [self dosomething];
}
else if(scrollView.contentOffset.y >=1150){
    [tableViewA setContentOffset:CGPointZero animated:YES];//this code is called and yet offset doesn't become 0
}
}

так что с этим кодом, если пользователь подпрыгнет вверх, он вызовет функцию dosomething, а если мы подпрыгнем вниз, он создаст tableViewA вверху, но он все еще будет внизу. если я не ошибаюсь, tableView Bounce снова снизу. кто-нибудь может дать мне подсказку?

1 Ответ

0 голосов
/ 05 августа 2011

Я попробовал ваш код и обнаружил, что просмотр таблицы установил его contentOffset в значение (0,0), но он продолжит анимацию перетаскивания. Кажется, что во время анимации прокрутки просмотр таблицы анимирует и изменяет свои границы одновременно,вызывать layoutSubviews каждый раз, когда границы меняются.Таким образом, даже для contentOffset было установлено значение (0,0), но сразу после этого для границ была установлена ​​новая величина для продолжения анимации прокрутки.

Может быть, вы можете попробовать

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    [self setContentOffset:CGPointZero animated:YES];
}
...