次のコードに従って、テーブルビューをプログラムでスクロールしようとしています。コンテンツのサイズを大きくしたため、残りの最後の数行がほとんど表示されないことに注意してください。手動で正しくスクロールして、必要なインデックスパスを一番上に取得できますが、プログラムでは発生していません。
[tableview reloadData];
CGSize size = tableview.contentSize;
size.height += 1000;
tableview.contentSize = size;
int rows = [tableview numberOfRowsInSection:0];
int numberofRowsInView = 17;
for (int i = 0; i < ceil((float)rows/numberofRowsInView); i++) {
[tableview scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:i * numberofRowsInView inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
....
}
合計行数 60 の場合、このコードは 0 ~ 16、17 ~ 33、34 ~ 50、51 ~ 59 のセル ビューを返すと予想されますが、最後のスクロールでは 43 ~ 59、つまり上記のコードに基づいて 17 行のビュー全体を返します。最後のページの top indexpath は 51 でなければなりません!
誰かがこれを整理するのを手伝ってくれませんか。ありがとう。
これは手動でスクロールする画像です:
これはプログラムで行われます。