0

現在、表示されているテーブルビューセルのインデックスパスを取得していますが、表示されている行からさらに3つのインデックスパスを取得したいのですが、どうすればよいですか?

NSArray *visiblePaths = [tblView indexPathsForVisibleRows];
4

1 に答える 1

1

セクションが1つだけだとすると、そのセクションの最大行数を考慮して、セクションを作成できます。

NSMutableArray *visiblePaths = [tblView indexPathsForVisibleRows] mutableCopy];
NSInteger lastIndexPath = [visiblePaths lastObject];
NSInteger lastRow = lastIndexPath.row;
NSInteger extraRows = 3;
NSInteger maxRow = MIN(lastRow+extraRows, [self tableView:tblView numberOfRowsInSection:0] - 1);

for (int i = lastRow+1; i < maxRow; i++) {
    NSIndexPath *newPath = [NSIndexPath indexPathForRow:i inSection:0];
    [visiblePaths addObject:newPath];
}

より多くのセクション(および/または最初に表示される前の行)に対しても実行可能です。うまくいけば、これらの要件をカバーするためにこれをどのように拡張するかが明確になります。

于 2013-03-12T14:25:36.813 に答える