2016-02-11 49 views
0

UIViewController(想象一下iPad风景布局),我显示了3个图表(一个在另一个旁边),每个图标都有一个甜甜圈系列,他们的图例显示在底部中间位于情节区域之外,包含图表的视图的大小相同。ShinobiCharts - 甜甜圈系列情节区域

每个图表显示了多达5个值,因此,当它们具有相同数量的值的所有的甜甜圈传说出现完全相互对准。

的问题是,当图表中的一个具有更少的值,则说明需要较小的垂直空间,因此使环形出现比其他低。

有没有办法将绘图区固定在一定的大小?我的目标是让所有的甜甜圈和传说似乎对齐,无论每个系列的价值数量如何。

谢谢!

回答

0

从MrAPolk答案开始,我设法实现了解决我的问题的方案。

这是我遵循的步骤:

  1. 在Interface Builder中,对于每一个我的图表,我画图表容器UIView与足够的尺寸只包含甜甜圈;然后我画了另一个UIView作为图例容器放置在图表容器下。
  2. 在图表设置中,我将图例设置为我的需要,并将其设置为隐藏chart.legend.hidden = YES;)。
  3. 我实现了SChartDelegate方法sChartRenderFinished:做这样的事情:

    - (void)sChartRenderFinished:(ShinobiChart *)chart { 
        SChartLegend *legend = chart.legend; 
        [legend removeFromSuperview]; 
        legend.hidden = NO; 
        legend.frame = legendContainer.bounds; //legendContainer is the UIView defined in IB 
        [legendContainer addSubview:legend]; 
        [legend setNeedsDisplay]; 
    } 
    

MrAPolk的回答实际上并没有解决我的问题,但它闪闪发光这种解决方案,所以我想给他如果+1我可以。

1

免责声明我在忍控件的开发人员。

如果你提供你的传奇与框架图表不会调整其大小的画布,以适应这两个图表的框架内的传奇人物和帆布。

这意味着您要和图表不会调整其大小的画布因传说的大小,你可以定位你的传奇。

这可能意味着您需要给图表一个较小的初始框架,以便您可以将图例置于图表旁边。

如果您有任何问题,请随时取得联系!

亲切的问候, 安德鲁波金霍恩。

+0

谢谢,安德鲁。 我试图实现您的建议,但我无法使其工作。我不断收到这个错误: 'SChartLegend at%p:指定的图例高度是太小而不适合系列的数量/布局。尝试增加maxSeriesPerLine或增加本身的图例高度。' 我错过了什么? 再次感谢。 –