PFQueryTableViewController игнорирует большинство настроек пользовательского PFTableViewCell в раскадровке
У меня есть TableViewController, который является подклассом PFQueryTableViewController
,
Он отображает динамические TableViewCells, которые являются подклассами PFTableViewCell
и имеют 2 пользовательских свойства типа IBOutlet UILabel
,
Оба настроены в раскадровке, как на следующем рисунке.
Фоны различных видов были окрашены, чтобы сделать их видимыми. Обратите внимание, что размер текста обеих меток установлен одинаково, 12pt.
В tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
Я установил обе метки
cell.dateLabel.text = stringFromDate; // the date is set earlier
cell.activityLabel.text = @"Test";
Теперь, когда я запускаю приложение, отображается следующее изображение:
Обратите внимание, что 1) текст написан правильно, но 2) фоны не окрашены, 3) только поле даты имеет размер текста 12 пт, тогда как метка активности имеет размер 17 пт, 3) высота Ярлык активности не такой, как определено в раскадровке, но меньше.
Конечно, метка ячейки установлена правильно, и "правильная" ячейка убрана (иначе я не мог получить доступ к пользовательским свойствам). Также свойства связаны правильно (иначе текст не будет отображаться правильно).
В моем контроллере табличного представления у меня нет никаких методов делегата, которые перезаписывают параметры раскадровки ячейки табличного представления.
Итак, мой вопрос:
Почему настройки раскадровки для моей ячейки табличного представления используются только частично (размер текста 1-й метки), но большинство из них игнорируются (цвета фона, высота и размер текста 2-й метки), и что мне нужно сделать, чтобы он работал правильно?
1 ответ
Задача решена! Кажется, это ошибка Xcode6:
Поскольку у меня сложилось впечатление, что использовалась старая версия раскадровки, я удалил приложение из симулятора и снова запустил приложение. Приложение сразу аварийно завершило работу с ошибкой " Не удалось найти раскадровку с именем" Main "в комплекте NSBundle... ".
Затем я понял, что в навигаторе проекта было две ссылки на одну и ту же раскадровку, и удалил одну.
Я посмотрел путь к файлу, указанный в сообщении об ошибке, и понял, что раскадровка больше не включена в цель.
Чтобы снова включить его в цель, я открыл раскадровку в навигаторе проекта в качестве исходного кода - только тогда инспектору удостоверений показываются свойства этого файла (когда он открывается как обычно, как файл построителя интерфейса, окно инспектора идентичности становится пустым.). И действительно, флажок целевого членства был снят. После повторной проверки сбой больше не происходил, и были использованы правильные настройки ячейки табличного представления.
Таким образом, проблема заключалась в том, что симулятор использовал старую версию раскадровки, так как новая раскадровка не была включена в цель, и, таким образом, старая раскадровка не была обновлена.