У меня проблема с перезагрузкой пользовательского UIView
(SBBarChart
) внутри ячейки таблицы. Я не использую автозапуск, потому что было слишком сложно настроить все компоненты ячейки, которые могут быть там или нет. Я вручную вычисляю каждый раз прямоугольники и это работает.Просмотр перезаряжается неправильно после вращения
Что касается поворота, я попытался реализовать в контроллере таблицы вид willRotateToInterfaceOrientation
с [self.tableView reloadData]
внутри. Это снова вызывает клетки после вращения. Хорошо.
Внутри класса ячейки я вызываю [self.barChart setNeedsDisplay]
, чтобы гарантировать, что подпрограммы диаграммы будут перезагружены, что работает.
Теперь проблема. Первоначально портретный портрет открывается и загружается правильно. Когда я поворачиваюсь в пейзаж, это тоже работает. Когда я поворачиваюсь назад к портрету, длина бара вычисляется правильно, но все же отображается, как это было в ландшафте. Таким образом, новый прямоугольник для панели имеет правильные меры, но панель отображается слишком долго и частично вне экрана.
Ярлык с теми же мерами для кадра отображается (и центрирован) правильно, поэтому это должно быть проблемой перезагрузки планшета.
Что я делаю неправильно?
Благодарим вас за ответ, но я хочу заполнить ширину экрана гистограммой. Итак, код для диаграммы: 'self.barChart.frame = CGRectMake (20, self.barChart.frame.origin.y, self.frame.size.width - 60, self.barChart.frame.size.height);' , Расчет работает отлично, но прямоугольник остается слишком длинным. Я попробовал '[self.barChart setNeedsDisplayInRect: self.barChart.frame];' не помогает. Для метки я делаю 'self.myLabel.frame = CGRectMake (self.barChart.frame.origin.x, self.barChart.frame.origin.y, self.barChart.frame.size.width, self.barChart.frame .size.height), и это работает. – Antiohia