Пользовательское редактирование ячеек

Не могли бы вы мне помочь. Мне нужно выполнить редактирование ячеек. Редактирование должно выглядеть так: когда я нажимаю barButtonItem (правый на панели навигации), содержимое ячеек должно немного смещаться вправо и должны появляться флажки. Пользователь должен иметь возможность выбрать несколько ячеек и зафиксировать редактирование, щелкнув ту же кнопку navButton. Я пытался использовать стандартное редактирование, но не могу понять, как: - выбрать несколько ячеек и только затем зафиксировать редактирование - как установить действие фиксации на navButton, а не на красную кнопку удаления, которая появляется рядом с каждой выбранной ячейкой


person Stas    schedule 25.04.2012    source источник
comment
stackoverflow.com/questions/9101810/ посетить эта ссылка..   -  person Nitin    schedule 25.04.2012


Ответы (3)


Множественный выбор считается одним из стилей редактирования. Поэтому, чтобы сделать ячейку многоразовой, реализуйте это в своем UITableViewDelegate:

-(UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath {
  ...
  return 3;
}

«3» здесь означает множественный выбор. Результат такой:

введите здесь описание изображения

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

-indexPathsForSelectedRows method on the table view.
NSArray* selectedRows = [tableView indexPathsForSelectedRows];

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

tableView.multiselectCheckmarkColor = [UIColor blueColor];

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

UITableViewCell and override the -_multiselectBackgroundColor method, like this:
-(UIColor*)_multiselectBackgroundColor { return [UIColor yellowColor]; }

Надеюсь, что это поможет вам..

person Nitin    schedule 25.04.2012
comment
Спасибо, это именно то, что мне нужно. Не могли бы вы также ответить, как правильно расположить пользовательские представления (метки, кнопки, imgViews и т. д.), которые лежат в моей ячейке, когда я нажимаю «Изменить»? (Теперь, когда я нажимаю «Изменить», некоторые представления перемещаются относительно представления ячейки). Но мне нужно, чтобы содержимое просто сжималось и не перемещалось за видимые границы. - person Stas; 25.04.2012
comment
Я сейчас занят кое-какой работой, которую дам вам и завтра, потому что у меня есть кое-какая работа над вашим сценарием. - person Nitin; 25.04.2012

В ответе Нита есть ошибка.

Код

tableView.multiselectCheckmarkColor = [UIColor blueColor];

должно быть написано так:

[tableView setValue:[UIColor blueColor] forKey:@"multiselectCheckmarkColor"];

Я попробовал это на Xcode 4.5, и это сработало.

person Gon    schedule 19.01.2013

Если это все еще актуально, обратите внимание, что в iOS 7+ вы можете просто использовать свойство tintColor UITableView — это устанавливает цвет галочки.

person user2992990    schedule 06.07.2014