美文网首页
iOS DGCharts 柱状图BarChart虚线

iOS DGCharts 柱状图BarChart虚线

作者: 木头炫 | 来源:发表于2025-12-18 17:58 被阅读0次

/// 背后绘制虚线的 XAxisRenderer

final class BackLineXAxisRenderer: XAxisRenderer {

    /// 虚线绘制的 x 值(数据坐标系)

    vardashedX:Double?

    /// 起点 Y 偏移(像素)

    var startYOffset: CGFloat = -30

    ///虚线颜色

    vardashColor:UIColor= .lightGray

    ///虚线宽度

    var dashLineWidth: CGFloat = 1.5

    /// 虚线样式(等价 Android 的[10f, 10f])

    vardashPattern: [CGFloat] = [3,3]

    //MARK: - Init

    override init(

        viewPortHandler: ViewPortHandler,

        axis:XAxis,

        transformer:Transformer?

    ) {

        super.init(

            viewPortHandler: viewPortHandler,

            axis: axis,

            transformer: transformer

        )

    }

    //MARK: - Render

    override func renderGridLines(context: CGContext) {

        // 先让系统画原有的 grid line

        super.renderGridLines(context: context)

        guard

            letdashedX,

            lettransformer

        else{return}

        // 数据坐标 -> 像素坐标

        varposition =CGPoint(x: dashedX,y:0)

        transformer.pointValueToPixel(&position)

        context.saveGState()

        defer{ context.restoreGState() }

        context.setStrokeColor(dashColor.cgColor)

        context.setLineWidth(dashLineWidth)

        context.setLineDash(phase:0,lengths:dashPattern)

        let top = viewPortHandler.contentTop + startYOffset

        let bottom = viewPortHandler.contentBottom

        context.move(to:CGPoint(x: position.x,y: top))

        context.addLine(to:CGPoint(x: position.x,y: bottom))

        context.strokePath()

    }

}

相关文章

网友评论

      本文标题:iOS DGCharts 柱状图BarChart虚线

      本文链接:https://www.haomeiwen.com/subject/twincstx.html