我正在开发iOS应用程序并使用shinobichart for iOS来显示数据。但我仍然坚持根据条形框架将数据点放在条形图的外部或内部。
我根据条形框架将数据点标签定位在栏内或栏外。如果条大到足以容纳数据点,我需要将数据点放在条形内部或者在条形图外部,如下图所示
在- (void)sChart:(ShinobiChart *)chart alterDataPointLabel:(SChartDataPointLabel *)label forDataPoint:(SChartDataPoint *)dataPoint inSeries:(SChartSeries *)series
我们需要根据shinobi文档更新数据点。但是什么逻辑可以帮助解决数据点的这种对齐。
此外,我尝试使用以下官方shinobi示例将数据点对齐https://www.shinobicontrols.com/blog/customizable-datapoint-labels 但无法修改要求。
请帮助解决这个问题。
答案 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%,它会出现在列中吗?