Как сделать uitableviewcell недоступным
Я собираю строку поиска, основанную на 4 tableviewcells, каждая ячейка открывает подзаголовок и загружает кучу данных, которые пользователь выбирает, чтобы установить ячейку предыдущего вида.
Существует порядок, в котором эти ячейки должны быть установлены так, чтобы каждый предшествующий список данных в подвью был связан с набором данных в родительском представлении.
то есть. в первой ячейке вы выбираете тип автомобиля, в следующей ячейке вы смотрите на модели, относящиеся к типу выбранного автомобиля.
В стороне В основе моего вопроса - как сделать ячейку неизбираемой до тех пор, пока не будут установлены предыдущие ячейки /s.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//...
if (indexPath.section == 0)
{
if (indexPath.row == 0) // <<--- what could I put in here....
{
//...
}
}
}
Ответы
Ответ 1
Запретить ячейку отслеживать любое взаимодействие:
[cell setUserInteractionEnabled:NO];
или разрешить взаимодействие, скрыть цвет выделения, и при нажатии ничего не делать.
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
- (void) tableViewDidSelectRow.... {
if(indexPath.row == indexOfCellWithNoUserInteraction) {
//do nothing
}
}
Ответ 2
Используйте tableView:willSelectRowAtIndexPath:
. Возвращает нуль для строк, которые вы не хотите выбирать.
Ответ 3
Синтаксис Swift
cell.selectionStyle = UITableViewCellSelectionStyle.None