【问题标题】:Which type can i send this function?我可以发送哪种类型的功能?
【发布时间】:2016-10-01 23:49:17
【问题描述】:

我正在使用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


    【解决方案1】:

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

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

    【讨论】:

    • 是的。如果我有数千个值,这不是正确的方法。谢谢。
    • 这是对图书馆作者的抱怨。你问了一个问题。我提供了答案。
    • 不,不,你是对的。我的方式不正确,我的意思是。
    【解决方案2】:

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

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

    这个逻辑对我来说很好。

    【讨论】:

      猜你喜欢
      • 2019-06-18
      • 2010-12-25
      • 2020-08-03
      • 2011-08-22
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2013-08-13
      相关资源
      最近更新 更多