UITableView с пользовательскими ячейками отлично подходит для iOS 6, но полностью белым в iOS 7

Я создаю приложение на Xcode 5, которое предназначено для iOS 6+.

У меня возникли проблемы с созданием табличного представления с пользовательскими ячейками. Интересно, что он отлично работал, пока я не обновился до Xcode 5.0.2 сегодня (я не знаю, что изменилось). В моем представлении таблицы нарисовал простой белый (снимок экрана ниже), прежде чем я перепутал с белым стилем навигации (я понятия не имею, как они также связаны друг с другом), который поставляется с iOS 7 SDK. Во всяком случае, когда я удалил индикатор состояния строки из моего кода, мой вид таблицы использовался, чтобы рисовать нормально, хотя у меня есть черная строка состояния. Сегодня, после установки Xcode 5.0.2, я построил один и тот же проект без изменения какого-либо кода, и теперь мой табличный вид выглядит белым на iOS 7 (как на устройстве, так и на симуляторе). Когда я переключаюсь на iOS 6, он отлично отображает (как устройство, так и симулятор). Я пробовал очистить папку сборки, очистить производную папку данных, перезапустить Xcode / simulator / device, но ничего не изменилось. Кроме того, приложение начало отображать белую строку состояния, которая не была до обновления Xcode. Я знаю, что они должны быть неактуальными, но сейчас мне сложно разрабатывать приложение. Ячейки получают все события касания, вид таблицы просматривает, я получаю все NSLog s на выходе, и я могу видеть полосу прокрутки при прокрутке вниз. Он просто не рисует. У меня был пользовательский код drawRect: в моих пользовательских ячейках. После просмотра пользовательского CG-рисунка UITableViewCell iOS 7 и подкласса UITableViewCell – backgroundView закрывает все, что я делаю в drawRect Я прокомментировал этот код, но это не помогло. Вот что я получаю на iOS 7 (выделенная ячейка в сером цвете):

введите описание изображения здесь

И вот одно и то же приложение на iOS 6 (размытый текст / изображения для конфиденциальности):

введите описание изображения здесь

Вот код для -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath :

 MyFriendViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"friendTableCell"]; if(!cell){ cell = [[[NSBundle mainBundle] loadNibNamed:@"MyFriendViewCell" owner:self options:nil] lastObject]; } /* some code that sets text fields/images */ [...] return cell; 

У меня есть XIB-файл (только с одним объектом, мой собственный класс ячеек) и класс, соответствующий ячейке. Я зарегистрировал свою ячейку в начале:

 [self.tableView registerNib:[UINib nibWithNibName:@"MyFriendViewCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"friendTableCell"]; 

Я проверил cell в методе, dequeue никогда не возвращает нуль в любом случае.

UPDATE: Я также понял, что мое приложение использует 100% процессор, когда он работает на этом экране как на iOS 6 (хотя он работает правильно), так и на iOS 7).

ВАЖНО: на вопрос был дан ответ, но любому из вас, кто задавался вопросом о drawRect: проблема не имела к этому никакого отношения, я все еще использую пользовательский drawRect: и он отлично работает.

setcontentview backgroundColor для очистки цвета

Этот ответ @Kjuly на аналогичный вопрос – это то, что я использовал для решения этой проблемы. Важная часть заключается в том, чтобы добавить этот метод к делегату табличного представления:

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:[UIColor clearColor]]; } 
  • Скрыть UISearchDisplayController из UITableView изначально (SDK для iOS)?
  • Использование UITableView внутри представления контейнера для форм - как мне получить доступ к полям формы?
  • Swift: tableView.reloadData () слишком медленный
  • Как создать пользовательский UITableViewCell с nib в Xcode 4?
  • Как получить заголовок раздела заголовка из выбранной ячейки таблицы?
  • Доступ к UITextField в пользовательском UITableViewCell
  • создать пользовательскую кнопку удаления для uitableview
  • Скрыть панель поиска UITableView по умолчанию
  • Первая строка UITableView прокручивается при просмотре представления
  • UITableView tableView сепаратор ячейки не отображается в групповом стиле ios 7
  • Изменение размера ячейки таблицы в соответствии с высотой загруженного изображения
  • Давайте будем гением компьютера.