UITableViewCell, находящийся в очереди, имеет неправильный макет до прокрутки (с использованием автоматического размещения)
У меня есть обычайUITableViewCell
подкласс, к которому были применены ограничения на автоматическое расположение в Интерфейсном Разработчике. Ячейка содержит несколько представлений, включая.UITextField
Соответственно, размерUITextField
ограничен таким образом, что между ним и следующим видом по умолчанию установлен горизонтальный интервал.
Ячейка создается следующим образом:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ProgressCell";
ProgressCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath]
cell.textField.text = @"Some string that is different for each cell";
return cell;
}
Когда ячейка появляется впервые,UITextField
переходит правильный кадр и появляется заUIView
вправо. Однако, когда я прокручиваю ячейку за пределами экрана, пауза, а затем прокручиваю назад, текст усекается правильно.
Пример показан ниже (при втором редактировании).
Я пробовал звонить[cell setNeedsLayout]
а также[cell setNeedsDisplay]
для клетки вcellForRowAtIndexPath
, а также выполнение их после задержки. Ни один не эффективен.
Что делает прокрутка за пределами экрана, что приводит к правильному отображению ячейки, и как я могу либо повторить это, либо исправить основную проблему?
РЕДАКТИРОВАТЬ:
призвание
[self.tableView reloadData];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];
для того, чтобы перезагрузить ячейку, кажется, чтобы макет отображался правильно в первый раз.
Однако сейчасбрейки (иногда) при прокрутке (т. е. при обратной прокрутке ограничения макета теперь не применяются правильно).
призвание[cell setNeedsLayout]
вcellForRowAtIndexPath
Похоже, не решить эту проблему.
EDIT2:
Верхняя ячейка, как показаноВот, отображается правильно (как и нижняя ячейка), пока я не прокрутил экран вниз. Это с тех пор исчезло.
Это отражает проблему с первого редактирования - этовторой рендеринг, который является проблемой (заставляет меня думать, что это может иметь какое-то отношение к повторному использованию ячейки?)