2016-10-01 35 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 

這個邏輯對我很好。