2013-08-19 4 views
0

Я настроил UITableView для редактирования. По какой-то причине, когда нажата кнопка редактирования, на самом деле редактируются только определенные строки.UITableПросмотреть некоторые строки, не редактируемые

Не все красные круговые круги, используемые для удаления строки, являются tappable.

Вот Quicktime video demonstrating the problem.

Такое же поведение возникает, если вы проведите по строке строку, чтобы удалить ее (вместо начала с кнопкой редактирования вверху) - некоторые строки редактируются; некоторые - нет.

Вот последовательность событий, при которых я встречаю такую ​​ситуацию: 1. заселить TableView (с, скажем, 2 шт) 2. Удалить оба пункта 3. Добавить пять пунктов 4. Три из этих пунктов будет удаляться - остальные два (равные номеру, первоначально заполняющему таблицу) не будут удалены.

Я немного озадачен. Любая помощь будет очень высоко ценится. Благодаря!

+1

Что делает ваш 'canEditRowAtIndexPath:/editingStyleForRowAtIndexPath:' выглядеть? –

+0

У меня есть результат записи canEditRowAtIndexPath, и он всегда возвращает true. Кроме того, когда он возвращает false, поведение отличается - красный круг не будет отображаться. – bbrame

+0

editStyleForRowAtIndexPath не реализован. – bbrame

ответ

0

Попробуйте добавить это в класс, когда вы реализуете съедобный вид делегат:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 
automaticEditControlsDidShow = NO; 
[super setEditing:editing animated:animated]; 

if (editing) { 
    automaticEditControlsDidShow = YES; 
    [self.tableView insertRowsAtIndexPaths:addRow withRowAnimation:UITableViewRowAnimationLeft]; 
} else { 
    [self.tableView deleteRowsAtIndexPaths:addRow withRowAnimation:UITableViewRowAnimationLeft]; 
} 
} 

Или попробуйте реализовать метод editingStyleForRowAtIndexPath. Для примера:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 

return UITableViewCellEditingStyleDelete; 
} 
Смежные вопросы