我可以发送哪种类型的功能?

问题描述 投票:0回答:2

我正在使用danielgindi/Charts swift框架。我想像这样使用带有目标线的折线图;

let ll = ChartLimitLine(limit: 6.5, label: "Average")
lineChartView.rightAxis.addLimitLine(ll)

它绘制目标,但我想改变目标上下的颜色。我认为我应该使用这个功能;

open func setCircleColors(_ colors: NSUIColor...){
        circleColors.removeAll(keepingCapacity: false)
        circleColors.append(contentsOf: colors)
}

我怎么用呢?什么意味着NSUIColor ......它是哪种类型的?我尝试发送一个NSUIColor数组,但这是一个错误?我怎样才能做到这一点?

我所有的线图代码;

let lineChartDataSet = LineChartDataSet(values: lineDataEntries, label: "price")
        var datasets=[IChartDataSet]()
        datasets.append(lineChartDataSet)
        let linechartdata=LineChartData(dataSets:datasets)
        lineChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption:.easeInElastic)
        lineChartDataSet.colors = ChartColorTemplates.colorful()
        var colorArray: [NSUIColor] = []

        for data in lineChartDataSet.values{
            if data.y > 6.5{
                 colorArray.append(NSUIColor.red)
                //lineChartDataSet.setCircleColor(NSUIColor.red)
            }else{
                colorArray.append(NSUIColor.green)
                //lineChartDataSet.setCircleColor(NSUIColor.green)
            }
        }
        lineChartDataSet.setCircleColors(colorArray)
        let ll = ChartLimitLine(limit: 6.5, label: "Average")
        lineChartView.rightAxis.addLimitLine(ll)
        lineChartView.data=linechartdata
ios charts swift3 linechart
2个回答
1
投票

显示为SomeType...的参数表示它是一个可变参数。这意味着您可以传递给定类型的0个或多个参数。但它们需要以逗号分隔值的形式传递,而不是作为数组传递。

lineChartDataSet.setCircleColors(NSUIColor.red, NSUIColor.green, NSUIColor.whatever)

1
投票

无需添加或尝试可变参数。还有一个变量lineChartDataSet.circleColors,你可以设置[NSUIColor]任何不。颜色可以在这里设置。我已经尝试过lineChartDataSet.setCircleColors,但是当你的图表增长时它会更复杂。我正在使用swift 3版本。

let arr: [NSUIColor] = [UIColor.red, UIColor.green, UIColor.yellow]
lineChartDataSet.circleColors = arr

这个逻辑对我很有用。

© www.soinside.com 2019 - 2024. All rights reserved.