Выберите несколько строк в UITableview

Я хотел бы выбрать несколько строк в UITableview так же, как Apple, в собственном приложении Alarm (см. Рисунок alt text

Как я могу это сделать?

Все ответы, которые я видел до сих пор, были старыми (и сказали «Не могу») или обратитесь к выбору нескольких строк в приложении родной почты. Этот метод не то, что мне хотелось бы, потому что сначала вы должны войти в «edit» -mode. Я хочу иметь возможность сразу выбирать строки.

Надеюсь, кто-то может помочь.

Кристиан

В

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

делать

  if([tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark){ [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone; }else{ [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark; } 

Редактировать:

Вы также должны использовать массив, который отображает проверенные ячейки, и в cellForRowAtIndexPath вам нужно проверить, должен ли быть указан параметр accessoriesType или нет.

Самый простой способ, который я нашел:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark; } - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone; } 

Вы можете видеть, какие ячейки выбраны, позвонив:

 NSArray *selectedCells = [self.tableView indexPathsForSelectedRows]; 

Играть с

tableView.allowsMultipleSelection

Это спасло меня от неприятностей. Найдено здесь .

«Выбранные» строки в приложении «Часы» – это ячейки с дополнительным типом UITableViewCellAccessoryCheckmark .

Возможные шаги для этого:

  1. Хранить проверено / не проверено состояние где-то для каждой строки.
  2. В cellForRowAtIndexPath: метод для ячейки в проверке cellForRowAtIndexPath: для ячейки ячейки набора для UITableViewCellAccessoryCheckmark
  3. В cellForRowAtIndexPath: для ячейки в не cellForRowAtIndexPath: ячейки набора set set accessoryType свойства UITableViewCellAccessoryNone
  4. Когда ячейка выбрана (нажата), отмените ее выбор, инвертируйте ее проверенное состояние и перезагрузите ячейку по этому указательному пути

Если вы используете раскадровки, просто нажмите «Просмотр таблицы», а затем в «Инспекторе атрибутов» на правой панели установите свойство «Выбор» в «Множественный выбор». Я проверил это с помощью Xcode версии 8.2.1.

  • Использование iPhone - dequeueReusableCellWithIdentifier
  • Запустить MBProgressHUD в другом streamе?
  • Определите, видна ли ячейка таблицы.
  • Как настроить разделитель таблицы в iPhone
  • Как запустить UITableView на последней ячейке?
  • UITableView didSelectRowAtIndexPath: не вызывается при первом нажатии
  • Загрузить изображение в таблицуView из URL-адреса iphone sdk
  • Несколько UITableViews на одном UIView
  • Как обнаружить одну кнопку в ячейке таблицы
  • iOS8 - ограничения двусмысленно указывают на высоту нуля
  • UITableViewCell расширяется по клику
  • Давайте будем гением компьютера.