Как установить uitableviewcell unclickable на iphone SDK - PullRequest
12 голосов
/ 12 января 2010

Привет! Я пытаюсь сделать мой uitableviewcell неактивным, чтобы пользователь не мог щелкнуть мышью, а просто сказал данные в ячейке. Я пытаюсь сделать это с помощью:

UITableViewCell *cell = nil;
if (indexPath.row < factsCount) {
static NSString *FactsCellIdentifier = @"FactsCell";
cell = [tableView dequeueReusableCellWithIdentifier:FactsCellIdentifier];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Однако ячейка все еще может быть нажата и выделена.

Спасибо за вашу помощь!

Ответы [ 4 ]

24 голосов
/ 01 июня 2011

Чтобы остановить только некоторые ячейки, используйте:

cell.userInteractionEnabled = NO;

Наряду с предотвращением выделения это также останавливает tableView: didSelectRowAtIndexPath: вызывается для ячеек, для которых он установлен.

(но учтите, что он отключит любой интерактивный контент внутри ячеек - например, кнопки - для этого случая установите для selectionStyle значение UITableViewCellSelectionStyleNone и игнорируйте tableView: didSelectRowAtIndexPath: вызов для этой ячейки)

11 голосов
/ 12 января 2010

Установите для ячейки selectionStyle значение UITableViewCellSelectionStyleNone.

4 голосов
/ 12 января 2010

Чтобы отключить выбор ячейки, вы можете реализовать метод -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath в делегате табличного представления и вернуть nil, если вы не хотите, чтобы ячейка с указанным NSIndexPath была выбрана. Как уже указывалось в других ответах, чтобы отключить подсветку ячейки, вы должны установить ее свойство selectionStyle в UITableViewCellSelectionStyleNone.
Также убедитесь, что вы правильно установили свойства при повторном использовании tableviewcells

4 голосов
/ 12 января 2010

Это можно сделать с помощью:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

или

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...