Используя XCode 4.5 и iOS 6, я разрабатываю приложение с простым табличным представлением с настраиваемыми ячейками. Я делал это сто раз в iOS 5 и ниже, но по какой-то причине новая система autoLayout доставляет мне много проблем.
Я настраиваю табличное представление и ячейку прототипа в IB, добавляю подвиды и подключаю их как IBOutlets, затем настраиваю делегата и источник данных. Однако теперь всякий раз, когда извлекается первая ячейка cellForRowAtIndexPath
, я получаю следующую ошибку:
*** Ошибка утверждения в - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Завершение работы приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Auto Layout все еще требуется после выполнения -layoutSubviews. Реализация ShopCell -layoutSubviews должна вызывать super.
Я не реализовал метод -layoutSubviews в своей подклассовой ячейке (ShopCell), и даже когда я пытаюсь это сделать и добавить супер-вызов, поскольку он предполагает, я все равно получаю ту же ошибку. Если я удалю подпредставления из ячейки в IB и изменю их на стандартный UITableViewCell, все будет работать так, как ожидалось, хотя, конечно, в моих ячейках не останется данных.
Я почти уверен, что мне не хватает чего-то простого, но я не могу найти никакой документации или руководств, чтобы предположить, что я сделал не так. Любая помощь будет оценена.
Изменить: просто попытался изменить его на UITableViewCell в IB и оставить все подпредставления на месте, все та же ошибка.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
Если используется автоматический макет, попробуйте в области отладчика.