ChartsOrg/Charts

LineChartRenderer add options to drawValues

Open

#3,467 建立於 2018年5月22日

在 GitHub 查看
 (4 留言) (0 反應) (0 負責人)Swift (28,002 star) (6,009 fork)batch import
enhancementgood first issue

描述

What did you do?

I implemented LineChart in my project and tried to subclass LineChartRenderer in order to change offset of values that are drawn in func drawValues(context: CGContext). The problem is that the only option is to copy all code of this method from LineChartRenderer into my subclass, but there are warnings, because _xBounds property has internal protection level.

What did you expect to happen?

I would like to be able to control value position of DataSet entries on LineChart. For example, in LineChartRenderer in func drawValues(context: CGContext) there is an alignment option, which is always set to .center, but I need to set it to left.

if dataSet.isDrawValuesEnabled {
                        ChartUtils.drawText(
                            context: context,
                            text: formatter.stringForValue(
                                e.y,
                                entry: e,
                                dataSetIndex: i,
                                viewPortHandler: viewPortHandler),
                            point: CGPoint(
                                x: pt.x,
                                y: pt.y - CGFloat(valOffset) - valueFont.lineHeight),
                            align: .center,
                            attributes: [NSAttributedStringKey.font: valueFont, NSAttributedStringKey.foregroundColor: dataSet.valueTextColorAt(j)])
                    }

Also it would be great to change offset for X and Y position.

Is there any option to do that without making fork?

Charts Environment

**Charts version/Branch/Commit Number: 3.1.1 Release ** Xcode version: 9.3.1 Swift version: 4.1 Platform(s) running Charts: iOS macOS version running Xcode: 10.13.4

貢獻者指南