2016-04-14 2 views
0

У меня есть UITableView с двумя разделами, и у меня есть кнопка, которая меняет режим просмотра таблицы в режиме редактирования, но только нижняя часть редактируется.Прокрутка между разделами в UITableView с выбранными ячейками

Когда я выбираю строки и прокручиваю только нижнюю часть (которая находится в режиме редактирования), строки сохраняют выбор. Но если я прокручиваю вверх до тех пор, пока нижняя часть не будет скрыта и вернется в нижнюю часть, выбор будет очищен.

Прокрутка между разделами очищает выбор.

Почему это происходит? Как это можно зафиксировать?

+0

Возможный дубликат [UITableView выбранной ячейки не остается выбран при прокрутке] (http://stackoverflow.com/questions/13275405/uitableview-selected-cell-doesnt -stay-selected-when-scrolled) –

+0

У вас есть два разных идентификатора ячейки для двух разделов? – Magoo

+0

Нет, они такие же, потому что они одна и та же клетка из раскадровки. – daniel3223

ответ

0

Так что только для потомков. В общем, даже если ячейки tableview являются одним и тем же классом, если они имеют другое поведение, когда дело доходит до таких вещей, как editabilty, часто бывает лучше иметь две отдельные строки CellIdentifier, чтобы избежать многого переключения между состояниями.

Может быть так просто, как

static NSString *CellIdentifier = @"Cell"; 
static NSString *CellIdentifier2 = @"Cell2"; 


NSString *identifierString = indexPath.section == 0 ? CellIdentifier:CellIdentifier2; 

MYTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifierString]; 

if (!cell) 
    cell = [[MYTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifierString]; 
Смежные вопросы