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]]; } 
  • ipad как создать программно несколько таблиц на одном представлении
  • Обнаружение, если UITableView находится в состоянии startUpdates / endUpdates
  • tableview без использования массива - xcode 7.3
  • Этот класс не является ключевым значением, совместимым с кодировкой для ключа ... почему?
  • Когда вам нужно создать отдельный xib для вашего контроллера?
  • ошибка с scrollToRowAtIndexPath
  • moveRow (at: to :) не работает, если UITableView имеет много элементов
  • Сделать UISearchBar не прокруткой, как в приложении «Контакты»
  • Тип 'ViewController' не соответствует протоколу 'UITableViewDataSource'
  • Группированный индекс UITableView & Section
  • Кэш памяти и DiskCache для стратегий изображений
  • Interesting Posts

    Невозможно развернуть приложение Xamarin.iOS с таргетингом на iOS 7.1 из Visual Studio

    UINavigationController и viewWillDisappear

    Обнаруживает версию iOS 7.1

    XCode 8 Действительный профиль подготовки для этого исполняемого файла не найден

    Как добавить интерфейс навигации после создания контроллера панели вкладок программным способом (Swift)

    Видео MPMoviePlayerController не воспроизводится

    Как я могу показать в Google Map ближайшие места в моем местоположении?

    Сохранение изображений в основные данные

    Отчет о сбое, указывающий крах в строке 0?

    Блоки успеха / неудачи AFNetworking, не вызываемые после того, как приложение заходит в фоновый режим

    Xcode LLDB Print Statement Fail – NSUndoManager

    __FILE__ устарел и будет удален в режиме быстрого 3

    Как записывать видео на вашем экране внутри приложения ios с кодом?

    iOS, даже когда приложение завершено

    Поиск ссылки на System.IO.FileSystem.Watcher.dll

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