0

私は非常に多くのTableViewCellを持っているTableViewを持っていますが、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 は再び下に跳ね返ります。誰でも私に手がかりを与えることができますか?

4

1 に答える 1

0

私はあなたのコードを試してみましたが、tableview が contentOffset を (0,0) に設定したことがわかりましたが、ドラッグ アニメーションを続行します。境界が変わるたびに。そのため、contentOffset も (0,0) に設定されましたが、その直後に境界が新しい値に設定され、スクロール アニメーションが続行されました。

多分あなたは試すことができます

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    [self setContentOffset:CGPointZero animated:YES];
}
于 2011-08-05T14:39:34.047 に答える