Я знаю, что это старая проблема, но на этот раз у меня есть немного поворот.UITableView Повторяющийся контент
Как говорится в названии, мой UITableView повторяет контент. В этом случае цвет фона меняется на ячейку, которую он не должен прокручивать и обратно на экране.
Я понимаю, что это, вероятно, связано с повторным использованием ячеек, но моя проблема заключается в том, что я не могу просто дать каждой ячейке уникальный идентификатор ячейки, поскольку я создал свою ячейку в своей раскадровке, которая требует ее ввода там.
Итак, как я могу обойти эту проблему, сохраняя мою камеру в моей раскадровке?
Небольшой код:
static NSString *cellIdentifier = @"Cell";
SLDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (!cell)
{
cell = [[SLDetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
[cell setBackgroundColor:[UIColor slateBackgroundGrey]]; //Set standard background colour
[cell.titleLbl setText:[self.tableTitles objectAtIndex:indexPath.row]]; //cell titles from an array (static data I made)
//This will occur for each cell, here are two examples
if ([cell.titleLbl.text isEqualToString:@"Aircraft"])
{
NSString *detailText = @"";
if (!self.flight.aircraft) detailText = @"N/A";
else detailText = self.flight.aircraft.name;
[cell.detailLbl setText:detailText];
}
if ([cell.titleLbl.text isEqualToString:@"Delete"])
{
UIView *containerView = [cell.titleLbl superview];
[containerView setBackgroundColor:[UIColor triggerRed]];
[cell.titleLbl setTextColor:[UIColor whiteColor]];
[cell.disclosureIndicator setHidden:YES];
[cell.detailLbl setText:@""];
}
В случае удаления ячейки изменить цвет свойства клетки.
Подклассы prepareForReuse
для сброса данных ячейки не могут остановить повторение данных, равно как и установка цвета в каждой отдельной ячейке if (как вы видите выше).
Спасибо.
Где ваш код для установки цвета фона? – rmaddy
О, а что за твист? Это звучит так же, как и у всех с неправильным повторным использованием. – rmaddy
Каждое решение, которое я видел, десятки и десятки из них разрешает это, используя уникальные идентификаторы ячеек, однако, когда вы используете раскадровку, это бесполезно. То, что я использую раскадровку :) –