Там какой-либо путь состоит в том, чтобы знать, в настоящее время ли tableview ячейка видима? У меня есть tableview, первая ячейка которого (0) является uisearchbar. Если поиск не активен, то скройте ячейку 0 через смещение. Когда таблица только имеет несколько строк, строка 0 видима. Как определить, видима ли строка 0 или является верхним рядом?
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
, который возвращает массив объектов ячеек таблицы. Объекты ячеек таблицы перерабатываются, поэтому в больших таблицах они в конечном итоге не будут иметь простой корреляции с источником данных.