如何在iOS中基于条形框架对齐shinobichart中的数据点

时间:2016-02-01 06:56:39

标签: ios shinobi

我正在开发iOS应用程序并使用shinobichart for iOS来显示数据。但我仍然坚持根据条形框架将数据点放在条形图的外部或内部。

我根据条形框架将数据点标签定位在栏内或栏外。如果条大到足以容纳数据点,我需要将数据点放在条形内部或者在条形图外部,如下图所示

Column chart with dynamic data point positioning

Bar chart with dynamic data point positioning

- (void)sChart:(ShinobiChart *)chart alterDataPointLabel:(SChartDataPointLabel *)label forDataPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series我们需要根据shinobi文档更新数据点。但是什么逻辑可以帮助解决数据点的这种对齐。

此外,我尝试使用以下官方shinobi示例将数据点对齐https://www.shinobicontrols.com/blog/customizable-datapoint-labels 但无法修改要求。

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

实现此目的的最佳方法是使用您提到的alterDataPointLabel方法。我会做这样的事情:

func sChart(chart: ShinobiChart!, alterDataPointLabel label: SChartDataPointLabel!, forDataPoint dataPoint: SChartDataPoint!, inSeries series: SChartSeries!) {
    if Int(label.text!) > [YOUR CUT OFF VALUE]
    {
        label.frame.origin.y += 15
        label.textColor = UIColor.whiteColor()
    }
    else
    {
        label.frame.origin.y -= 15
        label.textColor = UIColor.blackColor()
    }
}

如果您知道图表的显示值,则效果最佳。然而,作为实现它的更通用的方法,我建议将数据标签的原点的y值与图表画布的y值进行比较。那么你可以设置它,如果系列是画布的90%,它会出现在列中吗?