Подтвердить что ты не робот

Как узнать индексный путь UITableView.visibleCells?

NSArray * arrayOfVisibleTVC=[BNUtilitiesQuick ListController].tableViewA.visibleCells;
NSLog(@"array : %@", arrayOfVisibleTVC);

отобразит

"<UITableViewCell: 0x76c22a0; frame = (0 0; 320 75); autoresize = W; layer = <CALayer: 0x76bf770>>",
"<UITableViewCell: 0x76cfec0; frame = (0 75; 320 75); autoresize = W; layer = <CALayer: 0x769d260>>",
"<UITableViewCell: 0xe245f70; frame = (0 150; 320 75); autoresize = W; layer = <CALayer: 0xe245ed0>>",
"<UITableViewCell: 0xe248980; frame = (0 225; 320 75); autoresize = W; layer = <CALayer: 0xe2488c0>>",
"<UITableViewCell: 0xe24afa0; frame = (0 300; 320 75); autoresize = W; layer = <CALayer: 0xe24aee0>>"

и с этим

UITableViewCell * lastObjectOfArray=arrayOfVisibleTVC.lastObject;
int indexpathLastObject= (lastObjectOfArray.frame.origin.y/new.frame.size.height);

Я знаю последний из arrayOfVisibleTVC.lastObject, который я использую, чтобы получить индексный путь. но я думаю, что есть еще один способ получить индексный указатель TableViewcell, который показал... любой может мне помочь?

поэтому я могу получить индексный путь ячейки как целого

4b9b3361

Ответ 1

Вот метод в классе UITableView:

objective-c

- (NSArray *)indexPathsForVisibleRows

Swift

public var indexPathsForVisibleRows: [NSIndexPath]? { get }

Ответ 2

UITableView имеет метод для поиска indexPath ячейки:

- (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell

Просто перебирайте массив видимых ячеек и передайте каждую ячейку, чтобы получить указательный путь.

for (UITableViewCell *cell in arrayOfVisibleTVC) {
  NSIndexPath *path = [[BNUtilitiesQuick ListController].tableViewA indexPathForCell:cell];
  NSLog(@"%@", path);
}