Спасибо за этот пост. Это мне очень помогло. В моем случае я также редактирую текст в отдельном контроллере представления. Я заметил, что когда я использую:
[cell.contentView addSubview:cellLabel];
в tableView: cellForRowAtIndexPath: метод, которым представление метки постоянно отображалось поверх предыдущего представления каждый раз, когда я редактировал ячейку. Текст стал пикселированным, и когда что-то было удалено или изменено, предыдущая версия была видна под новой версией. Вот как я решил проблему:
if ([[cell.contentView subviews] count] > 0) {
UIView *test = [[cell.contentView subviews] objectAtIndex:0];
[test removeFromSuperview];
}
[cell.contentView insertSubview:cellLabel atIndex:0];
Нет больше странных слоев. Если есть лучший способ справиться с этим, пожалуйста, дайте мне знать.