2016-02-01 22 views
0

我正在開發iOS應用程序並使用shinobichart爲iOS顯示數據。但是我堅持根據條形框架將數據點定位在條的外部或內部。如何基於iOS中的酒吧框架在shinobichart中對齊數據點

我被困在基於酒吧框架的酒吧內或酒吧外定位數據點標籤。如果酒吧是大到足以容納數據點我需要裏面的酒吧或者外面的酒吧的數據點定位爲下面的圖片

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 但是無法修改這個需求。

請幫忙解決這個謎題。

回答

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%的畫布?