2012-03-26 2 views
3

Я новичок в программировании на iPhone, и застрял в ситуации.Как отредактировать UITableViewCell с помощью UIButton?

Ситуация заключается в том, что я хочу, чтобы UITableView входил в режим редактирования на клике UIButton. При входе в режим редактирования у меня должен быть флажок в каждой ячейке. И я хотел изменить изображения проверенных ячеек, если я нажму UIToolBarButton.

Как я могу достичь этого. Любая помощь будет оценена по достоинству.

+0

Если вы хотите, чтобы включить изображения проверяемого UITableViewCells, чтобы UIToolBarButton, потом думать на нем дважды bcoz, если таблица имеет 100 ячеек и, если пользователь выбирает только 10 ячеек, то как RU собирается показать 10 UITollBar иконки. –

+0

Я не собираюсь добавлять 100 элементов панели инструментов, но хочу поменять изображения ячеек на клик на табличных позициях – Hassam

+0

проверить отредактированный ответ. это то, что вы хотите? –

ответ

5

Как lnafziger сказал, чтобы ввести режим вызова Редактирование

[self.tableview setEditing:YES animated:YES]; 

в функции, подключенной к кнопке.

Чтобы показать флажки на клетки, когда таблица находится в режиме редактирования добавьте эти строки в viewDidLoad:

[self.tableView setAllowsSelectionDuringEditing:YES]; 
[self.tableView setAllowsMultipleSelectionDuringEditing:YES]; 

Тогда для UIBarButtonItem изменения изображения добавить цикл с [self.tableView indexPathsForSelectedRows] массивом и изменить каждый клетки изображения так:

NSArray *paths = [self.tableView indexPathsForSelectedRows]; 
for (NSIndexPath *path in paths) { 
    UITableViewCell *cell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:path]; 
    //change cell.imageView's image 
} 
+0

Кажется, что все работает нормально, но у вас небольшая проблема. Он изменяет только изображения ячеек, которые видны в данный момент, и не меняет изображения выбранных ячеек, но не отображается. Есть ли решение для этого – Hassam

+0

в методе cellForRowAtIndexPath или willDisplayCellAtIndexPath, чтобы изменить изображение, если 'cell.selected' Примите ответ. – JonasG

1

Для входа в режим редактирования с помощью кнопки, вызовите следующий код из метода действия данной кнопки:

[self.tableview setEditing:YES animated:YES]; 

Чтобы изменить CheckBox, вам необходимо установить editingAccessoryView клетки к пользовательскому зрения (как правило, в cellForRowAtIndexPath).

Смежные вопросы