Как сделать так, чтобы основной график автоматически менял ориентацию при повороте устройства? - PullRequest
4 голосов
/ 19 сентября 2011

Я пытаюсь, чтобы основной график автоматически перерисовывал гистограмму при изменении ориентации, как в представленном примере (CPTTest-iphone). Я сделал поиск в Google, но не повезло. У меня действительно есть свойство autoresizingMask CPTGraphHostingView, установленное в true, и в nib-файле его режим просмотра установлен на «Scale to Fill». Любые идеи, что я делаю неправильно или другой конфигурации, которую я пропускаю? Спасибо.

1 Ответ

1 голос
/ 29 мая 2014

Когда вы обнаружите изменение ориентации, вам нужно изменить размеры вашего CPTGraphHostingView, а затем вызвать reloadData на всех графиках вашего графика.Примерно так:

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    self.hostingView.frame = CGRectMake( /* new dimensions for your hosting view */ );
    for (CPTPlot *p in self.graph.allPlots)
    {
        [p reloadData];
    }
}

Возможно, вам также понадобится исправить метки и метки на осях, а также заполнение на plotAreaFrame для соответствия новому размеру представления хоста.

...