【问题标题】:How to make core plot auto change orientation when device is rotated?设备旋转时如何使核心图自动改变方向?
【发布时间】:2011-09-19 02:22:16
【问题描述】:

我正在尝试让核心图在方向改变时自动重绘条形图,就像在提供的示例(CPTTest-iphone)中一样。我在谷歌上进行了一些搜索,但没有运气。我确实将 CPTGraphHostingView 属性 autoresizingMask 设置为 true,并且在 nib 文件中,它的视图模式设置为“Scale to Fill”。任何想法我做错了什么或我缺少其他配置?谢谢。

【问题讨论】:

  • 顺便说一句,我在选项卡中有图表视图。
  • 只是不重绘,还是根本不调整大小?
  • 当手机改变方向时没有任何行为。条形图保持不变。
  • Core-Plot 不支持自动旋转。您将不得不检测变化并自己动手。
  • 但是在源码中提供的核心绘图条形图示例中是怎么做到的呢?没有代码处理轮换,它似乎工作。

标签: core-plot


【解决方案1】:

当您检测到方向变化时,您需要更改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 上的填充以适应托管视图的新大小。

【讨论】:

  • 我才意识到这个问题是在 3 年前提出的...... OP 可能不再关心了,但我希望这个答案可能对其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
相关资源
最近更新 更多