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: и он отлично работает.

2 Solutions collect form web for “UITableView с пользовательскими ячейками отлично подходит для iOS 6, но полностью белым в iOS 7”

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

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

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:[UIColor clearColor]]; } 
  • IOS: выбор UIScrollView или UITableView
  • MKLocalSearch БЕЗ MKMapView
  • Как найти массив словарей и показать в UITableview?
  • Разделить UITableView на фиксированное количество ячеек
  • Отображение нескольких NSFetchedResultsControllers в разных разделах одного и того же UITableView
  • Расширение таблицы viewview на основе номера строки UIlabel
  • iOS динамически заполняет результаты поиска
  • Добавление интервала между базовыми ячейками просмотра таблицы
  • Swift: PrepareForSegue, Swift Cast failure
  • swift 3.0 множественный выбор с выбором всей ячейки
  • viewWillAppear vs Viewdidload ios
  • Interesting Posts

    iOS / Swift 3.0: как вы определяете, какие строки в настоящее время видны в UITableView?

    Ошибка CGContextDrawPDFPage – Сбой приложения

    Жизненный цикл NSURLSession и базовое разрешение

    Почему UIButton изменяет размер при доступе к свойству titleLabel?

    CloudKit – CKQueryOperation с зависимостью

    Как применять контрольные метки в ячейке просмотра таблицы

    Как я могу загрузить .webarchive в UIWebView из NSData в памяти?

    Anti Alias, UIImage и производительность

    Связь параметра CoreData дает ошибку '- : непризнанный селектор, отправленный в экземпляр

    Как получить значение nonTil ServerTrust при создании URLAuthenticationChallenge программно?

    Обработка отмены в контроллере GKMatchmakerviewcontroller

    UITapGestureRecognizer – обнаружение двойного ИЛИ тройного крана?

    Что на самом деле должно делатьOptimizeForNetworkUse?

    Применение границы к форме изображения

    iOS MVC – Как передать данные с модели на контроллер?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.