У меня проблема с использованием iOS 5 новой функциональности для выбора нескольких ячеек в режиме редактирования.
Структура приложения следующая:
-> UIViewController
---> UITableView
----> CustomUITableViewCell
, где UIViewController
является и делегатом, и источником данных для UITableView
(я использую UIViewController
вместо UITableViewController
по причинам, связанным с требованиями, и не могу его изменить). Ячейки загружаются в UITableView
, как показано в следующем коде.
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = (CustomTableViewCell*)[tv dequeueReusableCellWithIdentifier:kCellTableIdentifier];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCellXib" owner:self options:nil];
cell = self.customTableViewCellOutlet;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
// configure the cell with data
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
Интерфейс ячейки был создан из файла XIB. В частности, я создал новый xib-файл, в котором суперпредставление состоит из элемента UITableViewCell
. Чтобы обеспечить настройку, я установил тип для этого элемента как CustomUITableViewCell
, где CustomUITableViewCell
extends UITableViewCell
.
@interface CustomTableViewCell : UITableViewCell
// do stuff here
@end
Код работает хорошо. В таблице отображаются пользовательские ячейки. Теперь во время выполнения приложения я устанавливаю allowsMultipleSelectionDuringEditing
на YES
и вхожу в режим редактирования для UITableView
. Кажется, работает. Фактически рядом с каждой ячейкой появляется пустой круг. Проблема в том, что когда я выбираю строку, пустой круг не меняет своего состояния. Теоретически, круг должен измениться с пустой на красную галочку и наоборот. Кажется, что круг остается выше contentView
для клетки.
Я провел много экспериментов. Я также проверил также этот следующий метод.
- (NSArray *)indexPathsForSelectedRows
и обновляется при выборе в режиме редактирования. Отображает правильно выбранные ячейки.
Мне не очень понятно, что когда я пытаюсь работать без пользовательской ячейки, только с UITableViewCell
, круг корректно обновляет свое состояние.
У вас есть предложения? Заранее спасибо.