У меня проблема с перезагрузкой пользовательского UIView
(SBBarChart
) внутри ячейки таблицы. Я не использую авторазметку, потому что было слишком сложно настроить все компоненты ячейки, которые могут быть там или нет. Я каждый раз вручную вычисляю прямоугольники, и это работает.
Что касается поворота, я попытался реализовать в контроллере табличного представления метод willRotateToInterfaceOrientation
с [self.tableView reloadData]
внутри. Это генерирует ячейки снова после вращения. Отлично.
Внутри класса ячеек я вызываю [self.barChart setNeedsDisplay]
, чтобы убедиться, что подпредставления диаграммы будут перезагружены, что работает.
Теперь проблема. Изначально портретный вид открывается и загружается корректно. Когда я поворачиваюсь в ландшафт, это тоже работает. Когда я возвращаюсь к портретной ориентации, длина полосы рассчитывается правильно, но все равно отображается так же, как и в альбомной ориентации. Таким образом, новый прямоугольник для полосы имеет правильные размеры, но полоса отображается слишком долго и частично за пределами экрана.
Метка с теми же размерами для фрейма отображается (и центрируется) правильно, поэтому это должно быть проблемой перезагрузки панели.
Что я делаю не так?