Не могли бы вы мне помочь. Мне нужно выполнить редактирование ячеек. Редактирование должно выглядеть так: когда я нажимаю barButtonItem (правый на панели навигации), содержимое ячеек должно немного смещаться вправо и должны появляться флажки. Пользователь должен иметь возможность выбрать несколько ячеек и зафиксировать редактирование, щелкнув ту же кнопку navButton. Я пытался использовать стандартное редактирование, но не могу понять, как: - выбрать несколько ячеек и только затем зафиксировать редактирование - как установить действие фиксации на navButton, а не на красную кнопку удаления, которая появляется рядом с каждой выбранной ячейкой
Пользовательское редактирование ячеек
Ответы (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]; }
Надеюсь, что это поможет вам..
В ответе Нита есть ошибка.
Код
tableView.multiselectCheckmarkColor = [UIColor blueColor];
должно быть написано так:
[tableView setValue:[UIColor blueColor] forKey:@"multiselectCheckmarkColor"];
Я попробовал это на Xcode 4.5, и это сработало.
Если это все еще актуально, обратите внимание, что в iOS 7+ вы можете просто использовать свойство tintColor UITableView — это устанавливает цвет галочки.