для предотвращения выбора строки
Чтобы полностью предотвратить выбор UITableViewCell
, попросите UITableViewDelegate
орудие tableView:willSelectRowAtIndexPath:
. Из этого метода вы можете вернуть nil
, если не хотите, чтобы строка была выбрана.
- (NSIndexPath *)tableView:(UITableView *)tv willSelectRowAtIndexPath:(NSIndexPath *)path
{
// Determine if row is selectable based on the NSIndexPath.
if (rowIsSelectable) {
return path;
}
return nil;
}
Это предотвращает выбор строки и tableView:didSelectRowAtIndexPath:
от вызова. Обратите внимание, однако, что это не предотвращает выделение строки.
Предотвратить выделение строк
Если вы хотите предотвратить визуальное выделение строки при прикосновении, вы можете убедиться, что для ячейки selectionStyle
установлено значение UITableViewCellSelectionStyleNone
или, предпочтительно, у вас может быть UITableViewDelegate
орудие tableView:shouldHighlightRowAtIndexPath:
следующим образом:
- (BOOL)tableView:(UITableView *)tv shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath
{
// Determine if row is selectable based on the NSIndexPath.
return rowIsSelectable;
}