2010-04-14 15 views

ответ

46

Установите selection style of the UITableViewCell в UITableViewCellSelectionStyleNone

+55

Это не делает клетка, не выбираемые его просто означает, что внешний вид ячейки не изменяется, когда он выбран. 'tableView: didSelectRowAtIndexPath:' все равно вызывается, когда ячейка прослушивается. Чтобы фактически предотвратить выбор, вам необходимо [реализовать tableView: willSelectRowAtIndexPath:] (http: // stackoverflow.com/a/812921/172218) на ваш 'UITableViewDelegate' и вернуть нуль для неизбираемых строк. –

+0

Swift 3 - 'cell.selectionStyle = UITableViewCellSelectionStyle.none' – John

10

вы можете сделать

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+1

Отсутствует одна точка. Вот фиксированная версия: cell.selectionStyle = UITableViewCellSelectionStyle.None –

50

Для того, чтобы он полностью не выбираемые две вещи необходимы:

1- Как другие сказали:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

2- Вам необходимо реализовать этот метод делегата:

// Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection. 
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if(cell.selectionStyle == UITableViewCellSelectionStyleNone){ 
     return nil; 
    } 
    return indexPath; 
} 
4

Swift Синтаксис:

cell.selectionStyle = UITableViewCellSelectionStyle.None 
9

Из раскадровки установлено следующее за Table View:

Выбор: Нет выбора

Показать Выбор на сенсорном : False

enter image description here

1

Реализовать это method из UITableViewDelegate

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 
3

я отвечаю с точки зрения отключения TableViewCell. Вы можете использовать раскадровку.

XCode Version 8.2.1 (8C1002)

Выберите TableVewCell на раскадровке и после будут видны на правой боковой панели - утилиты.

Utilities Sidebar

не сделать выбор : Нет

Это все!

1

Обновление в Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none 
0

Для Swift 3:

cell.selectionStyle = .none 
+0

Как предлагалось выше «Это не делает ячейку неизбираемой, это означает, что визуальный внешний вид ячейки не изменяется, когда он выбран. TableView: didSelectRowAtIndexPath : по-прежнему вызывается, когда ячейка прослушивается. Чтобы фактически предотвратить выбор, вам нужно реализовать tableView: willSelectRowAtIndexPath: на вашем UITableViewDelegate и вернуть нуль для неизбираемых строк. - « – Siyavash

+0

@Siyavash, как указано в исходном вопросе, этот человек хочет только чтобы скрыть «синий выбранный индикатор». Это не то же самое, что желание сделать его полностью неизменным. Проще говоря, человек, задающий вопрос, только пытается скрыть визуальную индикацию выбора. –

1

для Swift 3 вы можете использовать

cell.isUserInteractionEnabled = false 
+0

может у вас, пожалуйста, добавьте информацию – Kondal

+0

только что этот код в cellForRowAt метод indexPath табличного представления, его простой – 2017-09-13 06:05:58

+0

этот метод полезен, когда вы хотите, чтобы пользовательское взаимодействие отключилось в виде таблицы, иначе вы можете использовать долю метода Mr Ben Below – 2017-09-13 06:14:41

Смежные вопросы