как узнать путь к индексу UITableView.visibleCells? - PullRequest
27 голосов
/ 30 ноября 2011
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, который я использую для получения indexpath.но я думаю, что есть другой способ получить indexpath TableViewcell, который показал ... кто-нибудь может мне помочь?

, чтобы я мог получить indexpath ячейки как целое число

Ответы [ 2 ]

51 голосов
/ 13 января 2013

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

target-c

- (NSArray *)indexPathsForVisibleRows

Swift

public var indexPathsForVisibleRows: [NSIndexPath]? { get }
9 голосов
/ 30 ноября 2011

UITableView имеет метод для нахождения indexPath ячейки:

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

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

for (UITableViewCell *cell in arrayOfVisibleTVC) {
  NSIndexPath *path = [[BNUtilitiesQuick ListController].tableViewA indexPathForCell:cell];
  NSLog(@"%@", path);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...