2016-04-30 3 views
0

Я использую сгруппированный UITableView с реализованным commitEditingStyle для удаления одной строки из таблицы. (В моем UIViewController нет UITableViewController). Также я использую пользовательскую ячейку с отмеченным изображением. Для того, чтобы изменить имидж я просто использовать это:UITableViewCellEditingStyleDelete автоматически отменяет выделение всех видимых ячеек в представлении таблицы

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
    if (selected) { 
     self.img_checked.image = [UIImage imageNamed:@"checked.png"]; 

    else { 
     self.img_checked.image = [UIImage imageNamed:@"unchecked.png"]; 
    } 
} 

Моя проблема, когда красть строку «Удалить» появляется по желанию, но она автоматически отменяет все видимые ячейки в Tableview

Как может я предотвратить отображение табличного представления?

+0

Почему вы хотите сохранить выбранную ячейку? – Lion

+0

В моем представлении таблицы есть 5 выбранных видимых строк. если я удаляю для удаления, setSelected автоматически вызывается всеми видимыми строками. Конечно, я хочу, чтобы другие строки были выбраны, я даже не трогаю их вообще, тот, который я удаляю, я не забочусь, его удалил;), но также, если я просто завис и отменил удаление, все строки остаются невыбранными –

ответ

1

Вы должны сохранять индексы или индексные пути выбранных состояний, а затем проверять их в cellForRow или willDisplayCell: делегировать. Вы можете сделать это через словарь или массив. Второй способ - сохранить его в отдельной переменной внутри объекта, который вы устанавливаете в ячейке (если вы это сделаете).

+0

Почему я должен их сохранить? Если вы выберете ячейку, состояние будет сохранено в каждой ячейке. Но я спрашиваю себя: почему выбрана анимация - (void) setSelected: (BOOL) анимированная: (BOOL) анимированный метод? Я не выбираю ни одну из видимых строк. в тот момент, когда я прокручиваю одну строку, все видимые строки отключаются, потому что iOS автоматически вызывает этот метод. Итак, для полного удобства использования со всеми функциями стандартный метод обратного вызова яблока для выбора ячеек бесполезен? –

+0

Это выбор интерфейса, но вам нужно сообщить системе, что ячейка должна быть выбрана самостоятельно, проверьте эту ссылку: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageSelections/ ManageSelections.html –

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