#iphone #objective-c #cocoa-touch
#iPhone #objective-c #cocoa-touch
Вопрос:
Я хочу обновить accessoryViews
в UITableView
, но только те строки, которые пользователь действительно может видеть.
Как я могу определить, какие строки на самом деле находятся на экране?
Ответ №1:
Используйте метод экземпляра UITableView -visibleCells
visibleCells
Возвращает ячейки таблицы, которые
видно в приемнике.
- (NSArray *)visibleCells
Возвращаемое значение
Массив, содержащий
UITableViewCell
объекты, каждый из которых представляет видимую ячейку в представлении принимающей таблицы.Доступность
Доступно в iOS 2.0 и более поздних версиях.
Ответ №2:
У UITableView есть -visibleCells
метод для этого — он возвращает NSArray из видимых в данный момент ячеек
Ответ №3:
Реализуйте это, для какой строки вы не хотите добавлять аксессуар.
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
if (row == 0||row == 2)
return nil;
return indexPath;
}
Ответ №4:
Не думаю, что вам действительно нужно определять видимую строку для обновления accessoryViews. Вы можете просто реализовать это в tableView:cellForRowAtIndexPath:
методе datasource.
Но если вы хотите получить видимые строки, вы можете использовать
- (NSArray *)visibleCells