Определите, видима ли tableview ячейка

Там какой-либо путь состоит в том, чтобы знать, в настоящее время ли tableview ячейка видима? У меня есть tableview, первая ячейка которого (0) является uisearchbar. Если поиск не активен, то скройте ячейку 0 через смещение. Когда таблица только имеет несколько строк, строка 0 видима. Как определить, видима ли строка 0 или является верхним рядом?

54
задан Jim B 24 July 2010 в 08:58
поделиться

1 ответ

UITableView имеет метод экземпляра под названием indexPathsForVisibleRows, который вернет NSArray из NSIndexPath объектов для каждой строки таблицы, которая в данный момент видна. Вы можете проверять этот метод с любой необходимой вам частотой и проверять наличие нужной строки. Например, если tableView является ссылкой на вашу таблицу, следующий метод скажет вам, находится ли строка 0 на экране:

-(BOOL)isRowZeroVisible {
  NSArray *indexes = [tableView indexPathsForVisibleRows];
  for (NSIndexPath *index in indexes) {
    if (index.row == 0) {
      return YES;
    }
  }

  return NO;
}

Поскольку метод UITableView возвращает NSIndexPath, вы можете так же легко расширить его для поиска секций или комбинаций строк/секций.

Это более полезно для вас, чем метод visibleCells, который возвращает массив объектов ячеек таблицы. Объекты ячеек таблицы перерабатываются, поэтому в больших таблицах они в конечном итоге не будут иметь простой корреляции с источником данных.

100
ответ дан 7 November 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: