我需要绘制靠近图表顶部的限制线,我想在右上角保留限制线标签。有什么办法,它不能被截断。请看我的输出。 enter image description here
试试limitline.labelPosition = ChartLimitLabelPositionRightBottom;
如果你想将labelPosition保持在右上角,你可以尝试设置你的YAxis.spaceTop = x;如果x == 0
,maxValue将匹配图表的顶部,如果x == 1
,maxValue将匹配图表的centerY,
对不起,我不能很好地表达自己,但是,试试吧。希望它有效。
默认渲染器有点搞砸了。对它进行子类化(YAxisRenderer)和覆盖方法:renderLimitLines
。从原始渲染器复制内容并替换行:
var clippingRect = viewPortHandler.contentRect
clippingRect.origin.y -= l.lineWidth / 2.0
clippingRect.size.height += l.lineWidth
有:
var clippingRect = viewPortHandler.contentRect
clippingRect.origin.y -= l.lineWidth / 2.0 + l.valueFont.lineHeight
clippingRect.size.height += l.lineWidth + l.valueFont.lineHeight
现在,正如您准备好的那样,您需要设置新的轴渲染器
let yAxisRenderer = CenteredLimitLineYAxisRenderer(
viewPortHandler: chart.viewPortHandler,
yAxis: chart.leftAxis,
transformer: chart.getTransformer(forAxis: .left)
)
chart.leftYAxisRenderer = yAxisRenderer