在UIViewController
(想象一个iPad
横向布局)中,我显示3个图表(一个在另一个旁边),每个图表都有一个甜甜圈系列,其图例显示在底部中间,外面绘图区域,包含图表的视图大小相同。
每个图表最多显示5个值,因此当它们具有相同数量的值时,所有甜甜圈和图例看起来都完全相互对齐。
问题在于,当其中一个图表的值较少时,图例会占用较小的垂直空间,从而使甜甜圈看起来比其他图片低。
有没有办法将绘图区域固定在一定的大小?我的目标是让所有的甜甜圈和图例看起来都是一致的,无论每个系列的值是多少。
谢谢!
答案 0 :(得分:1)
免责声明我是Shinobi Controls的开发人员。
如果您为图例提供框架,则图表不会调整其画布大小,以使图表框架内的图例和画布都适合。
这意味着您可以将图例定位在所需位置,图表不会根据图例的大小调整其大小。
这可能意味着您需要为图表指定一个较小的初始框架,以便您可以将图例放在图表旁边。
如果您有任何疑问,请不要犹豫与我联系!
亲切的问候, Andrew Polkinghorn。
答案 1 :(得分:0)
从MrAPolk回答开始,我设法实现了解决问题的方法。
这是我遵循的步骤:
UIView
,其大小足以仅包含甜甜圈;然后我画了另一个UIView
作为图例容器放置在图表容器下面。chart.legend.hidden = YES;
)。我实施了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。