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?
  • Программно перемещать / оживлять строку UITableView из одной позиции в другую
  • Создание UITableViewCell программно в Swift
  • iPhone - добавьте кнопку «Добавить», когда кнопка «Изменить» выбрана в UITableView
  • как я могу различить, какая часть UITableViewCell была нажата
  • iOS запускает черный экран, UINavigationController, Nib, RootViewController
  • UITableViewCell не обрезается до границ в режиме редактирования в iOS8 (работает в iOS7.1)
  • Сбой при вызове indexPathForCell
  • Swift - перетащить TableViewCell с длинным распознаванием жестов
  • UIButton в пользовательском UITableViewCell перестает работать после вращения
  • stange поведение UIRefreshControl с UISearchBar
  • Interesting Posts

    Самый простой способ использования ресурсов пакета для тестирования

    Определите, произошло ли изменение дня

    Проблема с обновлением Xcode 8 Pod – повторное создание CocoaPods из-за обновления основной версии

    Firebase: Как удалитьObserver (withHandle :) после наблюденияSingleEvent ()?

    неверный пользовательский API-интерфейс фрилансера

    Добавить путь к ресурсу UIWebView Cordova IOS

    Как я могу сделать ползунок Control Center доступным для редактирования?

    Является ли connectionWithRequest синхронным?

    Любой способ получить тело ответа во время ошибок HTTP?

    Раскладка XCode6, TableViewController не может видеть элементы навигации

    Как сохранить nsdictionary подзаголовка в mainview на основе выбора tableviewcell

    Как распознать персонаж, нарисованный на экране iPhone?

    Увеличьте область видимости Scrollview

    Конфликтный прокрутка по UITableView в UIScrollView

    Использование моего NavigationController с моим ECSlidingViewController

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