UITableView Установка некоторых ячеек как «невыбираемых» - PullRequest
106 голосов
/ 01 мая 2009

Как я могу установить свойство ячейки UITableView как невыбираемое? Я не хочу видеть это синее поле выбора, когда пользователь нажимает на ячейку.

Ответы [ 15 ]

1 голос
/ 22 декабря 2010

Если вы спроектировали свою ячейку в Интерфейсном Разработчике, вы можете сделать это, сняв флажок с ' Взаимодействие с пользователем ' для tableViewCell.

0 голосов
/ 26 апреля 2018

Swift 4:

В клеточном классе:

selectionStyle = .none
0 голосов
/ 25 марта 2015

Используйте tableView: willDisplayCell: forRowAtIndexPath: вместо tableView: didSelectRowAtIndexPath: избавиться от вспышки, которая появляется при первом прикосновении к ячейке.

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
0 голосов
/ 28 сентября 2013

Чтобы сделать не выбранную строку, необходимо внести некоторые изменения в два метода делегата UITableView.

В методе ниже

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

после выделения ячейки напишите код ниже

if(indexPath.row == someCellNumber) cell.selectionStyle =UITableViewCellSelectionStyleNone;

Приведенный выше код предотвратит выделение ячейки, если пользователь каким-либо образом попытается выбрать.

в этом методе делегата ниже

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if(indexPath.row == someCellNumber) return;

    //for other cells write the code below...
}

если вы не напишите if(indexPath.row == someCellNumber) return; строка все равно будет выделена и есть вероятность сбоя приложения

0 голосов
/ 02 мая 2013

Существует еще один простой способ избежать выделения, выделенного синим цветом.

Выберите ячейку, которую вы не хотите, чтобы она была синей.

Затем выберите инспектор атрибутов (значок щита рядом со значком линейки на панели свойств сбоку).

Затем измените поле «Выбор» с «Синий» на «Нет».

Обратите внимание, предположительно, это все еще выбирается, оно просто не будет отображаться как выбранное, если все, что вам нужно, это избежать эффекта пользовательского интерфейса.

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