Как отключить все ячейки, кроме первых 3 ячеек UITableView?Отключить ячейки TableView
Это возвращает ноль, если выбран один из клеток с ограниченными физическими возможностями:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row >= 3) {
[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]] setAlpha:0.5];
return nil;
}
return indexPath; }
Как я могу сделать отключенные клетки «видимыми»? Это работает, но я только при запуске, так как indexPath каждых изменений клеток при прокрутке (повторное использование клеток):
for(int i = 3; i <= 100; i++) {
[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]] setAlpha:0.5];
}
Да, это отлично работает при первом запуске приложения, но когда я прокручиваю вниз изменение indexPaths (tableView перерабатывает ячейки), и все ячейки отключены. – MappleDev
Вам нужно только отключить ячейки для определенных indexPaths. Не забудьте также явно включить ячейки, которые должны быть включены внутри 'tableView: cellForRowAtIndexPath:'. Это предотвратит проблему повторного использования соты, которую вы видите. – Macondo2Seattle
Я использую этот код внутри 'tableView: cellForRowAtIndexPath:': 'if (indexPath.row> = 3) { cell.userInteractionEnabled = NO; cell.selectionStyle = UITableViewCellSelectionStyleNone; } ' – MappleDev