Shinobi甜甜圈图表标签颜色不会改变

时间:2016-12-15 20:47:31

标签: swift shinobi

我有一个Shinobi甜甜圈图表,我想更改切片标签颜色。

我使用Swift3。图表完美显示,但标签颜色为白色。

class myViewController: UIViewController, SChartDatasource {

    @IBOutlet weak var paymentChartView: UIView!

    override func viewDidLoad() {           
        addPaymentInformationChart()
    }

    func addPaymentInformationChart() {
        let chart = ShinobiChart(frame: paymentChartView.bounds)
        chart.title = "Payment Information"
        chart.autoresizingMask = [.flexibleHeight, .flexibleWidth]
        chart.titleLabel.textColor = UIColor.black

        chart.datasource = self
        paymentChartView.addSubview(chart)
    }

    /* SChartDatasource methods */

    func numberOfSeries(in chart: ShinobiChart) -> Int {
        return 1
    }

    func sChart(_ chart: ShinobiChart, seriesAt index: Int) -> SChartSeries {
        let donutSeries = SChartDonutSeries()
        donutSeries.style().spokeStyle.showSpokes = true;
        donutSeries.selectedStyle().spokeStyle.showSpokes = true;
        return donutSeries
    }

    func sChart(_ chart: ShinobiChart, numberOfDataPointsForSeriesAt seriesIndex: Int) -> Int {
        return 3
    }

    func sChart(_ chart: ShinobiChart, dataPointAt dataIndex: Int, forSeriesAt seriesIndex: Int) -> SChartData {
        let dp = SChartDataPoint()
        dp.xValue = 0
        dp.yValue = 0
        if paymentDatasource.count > 0 {
            switch dataIndex {
            case 0:
                dp.yValue = 100.0
                break
            case 1:
                dp.yValue = 200.0
                break
            case 2:
                dp.yValue = 300.0
                break
            default:
                break
            }
        }
        return dp
    }

    func sChart(_ chart: ShinobiChart, labelForSliceAt sliceIndex: Int, in series: SChartRadialSeries) -> UILabel? {

        let sliceLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
        sliceLabel.textColor = UIColor.black

        switch sliceIndex {
        case 0:
            sliceLabel.text = "Principal"
            break
        case 1:
            sliceLabel.text = "Interest"
            break
        case 2:
            sliceLabel.text = "Total"
            break
        default:
            break
        }
        return sliceLabel
    }

}

标签文字设置正确但标签颜色不会改变。

enter image description here

我将不胜感激任何帮助

1 个答案:

答案 0 :(得分:0)

毕竟我发现我必须更改图表样式才能更改标签样式:

func sChart(_ chart: ShinobiChart, seriesAt index: Int) -> SChartSeries {
    let donutSeries = SChartDonutSeries()
    donutSeries.style().spokeStyle.showSpokes = true;
    donutSeries.selectedStyle().spokeStyle.showSpokes = true;
    donutSeries.style().labelFontColor = UIColor.black
    donutSeries.selectedStyle().labelFontColor = UIColor.black
    return donutSeries
}