0
我使用iOS-Charts library,我需要繼承HorizontalBarChartRenderer
,這樣我可以改變執行drawDataSet(...)
。這應該是可能的,如前所述,如在this answer。創建自定義的iOS,圖表渲染
所以我創建了自定義渲染,但由於訪問控制,也因爲我使用的CocoaPods我不得不重寫不僅僅是drawDataSet
多一點:
- fileprivate Buffer類
- fileprivate VAR _buffers =緩衝區
- fileprivate FUNC prepareBuffer(數據集:IBarChartDataSet,指數:智力)
- fileprivate VAR _barShadowRectBuffer:的CGRect =的CGRect()打開覆蓋
- 開放覆蓋FUNC drawDataSet(背景:CGContext上,數據集:IBarChartDataSet, 指數:智力)
我沒有改變任何東西,上述方法只是從HorizontalBarChartRenderer
複製,我設置渲染這樣的:
self.horizontalBarView.renderer = HorizontalBarStackRenderer(dataProvider: self.horizontalBarView, animator: self.horizontalBarView.chartAnimator, viewPortHandler: self.horizontalBarView.viewPortHandler).
當我嘗試運行它,我在BarCharRenderer's drawValues()
得到fatal error: Index out of range
:
let buffer = _buffers[dataSetIndex]
當我試圖設置渲染標準HorizontalBarChartRenderer
以同樣的方式:
self.horizontalBarView.renderer = HorizontalBarChartRenderer(dataProvider: self.horizontalBarView, animator: self.horizontalBarView.chartAnimator, viewPortHandler: self.horizontalBarView.viewPortHandler)
一切工作正常。我錯過了什麼嗎?
嗨,我可以問你如何重寫'drawValues'?...我正在嘗試爲'PieChartRenderer'做同樣的事情,但我不知道從哪裏開始......謝謝! – Pangu
在我的渲染器的子類中,我只是放置了默認'drawValues()'的副本,並將其調整爲符合我的需要。 –
對不起,我在工作。 –