2

我正在尝试习惯为 iOS 开发的 Shinobi 图表。我已经下载了试用版并尝试使用它绘制一些示例图表。图表在演示应用程序中看起来相当不错。但有一件事我注意到,在使用类 SCHartColumnSeries 绘制条形图时,条形的宽度会根据可用于绘制图表的框架进行调整。我希望它是固定的(比如 20 像素),无论存在多少条,并且如果所需的宽度大于分配的宽度(在为图表分配框架时),那么只有图表的某些部分是可见的并且用户可以滚动用于查看剩余柱的图表(这在 Core Plot 中是可能的)。如何使用 Shinobi 图表实现这一目标?

4

1 回答 1

1

Shinobi 可以做到这一点,但恐怕这不是设置固定宽度属性的简单案例。我只是尝试过这样做,但它并不太复杂!

我的建议是这样设置图表:

chart = [[ShinobiChart alloc] initWithFrame:self.view.bounds];
[chart setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
[chart setDatasource:d];

[chart setXAxis:[SChartNumberAxis new]];
[chart setYAxis:[SChartNumberAxis new]];
[[chart xAxis] setEnableGesturePanning:YES];
[[chart xAxis] setEnableGestureZooming:NO];

[chart.xAxis setDefaultRange:[[SChartNumberRange alloc] initWithMinimum:@5 andMaximum:@10]];

最重要的部分是最后 3 行。通过关闭缩放,您可以让图表具有固定的缩放级别,这意味着条形保持相同的宽度。您可以打开平移以允许用户滚动以查看不同的条形图。

最后一行设置默认范围。在这里,我刚刚将其设置为 5 到 10 之间的值。这意味着图表沿 x 轴显示 5 到 10 之间的值。

通过执行上述操作,这意味着您的列将具有固定的宽度!您可能需要根据您拥有的数据点数量进行一些调整和/或计算,以便找出您必须将默认范围设置为的内容。例如,如果它们是可变的,您将需要考虑数据点的数量、列之间的填充和列间填充以及可用的像素数)。

我意识到这是一个相当简单的答案,但它应该给你一个很好的起点!

于 2013-03-14T11:07:52.103 回答