2016-10-01 52 views
0

我正在使用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数组,但它是一个错误? 我该怎么做?

我所有的linechart代码;

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 

回答

1

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

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

是的。如果我有数千个值,这是不正确的方法。谢谢。 – ROOT

+0

这是对图书馆作者的投诉。你问了一个问题。我提供了一个答案。 – rmaddy

+0

不,你是对的。我的意思是我的方式不正确。 – ROOT

1

没有必要添加或尝试可变参数。还有一个变量lineChartDataSet.circleColors,您可以在其中设置[NSUIColor]任意号码。的颜色可以在这里设置。我已经尝试过lineChartDataSet.setCircleColors,但在图形增长时它更复杂。我正在使用swift 3版本。

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

这个逻辑对我很好。