2016-11-21 6 views
0

Я пытаюсь построить два набора данных на одной диаграмме, используя графическую библиотеку Jawbone для iOS. Вот данные для даты (ось х), уровень активности и порога:Как создать и настроить две строки с JBLineChart в iOS?

var activityChartLegend = ["11-14", "11-15", "11-16", "11-17", "11-18", "11-19", "11-20"] 
var activityChartData = [88, 81, 69, 77, 70, 89, 90] 
var activityThreshold = [80, 80, 80, 80, 80, 80, 80] 

Я успешно построена первая линия для activityChartData. Однако я смущен тем, как построить вторую строку для ActivityThreshold. Документация ограничена, поэтому я не уверен, как построить эту вторую строку. В следующем коде я вернул количество строк как «2», но я не понимаю, как построить обе строки в следующих функциях.

func numberOfLines(in lineChartView: JBLineChartView!) -> UInt { 
    return 2 
} 

func lineChartView(_ lineChartView: JBLineChartView!, numberOfVerticalValuesAtLineIndex lineIndex: UInt) -> UInt { 
    if (lineIndex == 0) { 
     return UInt(activityChartData.count) 
    } 

    return 0 
} 

func lineChartView(_ lineChartView: JBLineChartView!, verticalValueForHorizontalIndex horizontalIndex: UInt, atLineIndex lineIndex: UInt) -> CGFloat { 
    if (lineIndex == 0) { 
     return CGFloat(activityChartData[Int(horizontalIndex)]) 
    } 
    return 0 
} 

Кроме того, я отформатировал первую строку со следующим кодом, но не понимаю, как форматировать другую линию, когда он будет добавлен к просмотру диаграммы:

func lineChartView(_ lineChartView: JBLineChartView!, showsDotsForLineAtLineIndex lineIndex: UInt) -> Bool { 
    return true // False = do not show the dots 
} 

func lineChartView(_ lineChartView: JBLineChartView!, dotRadiusForDotAtHorizontalIndex horizontalIndex: UInt, atLineIndex lineIndex: UInt) -> CGFloat { 
    return CGFloat(6) 
} 

func lineChartView(_ lineChartView: JBLineChartView!, colorForDotAtHorizontalIndex horizontalIndex: UInt, atLineIndex lineIndex: UInt) -> UIColor! { 
    return UIColor.lightGray 
} 

func lineChartView(_ lineChartView: JBLineChartView!, smoothLineAtLineIndex lineIndex: UInt) -> Bool { 
    return true 
} 

func lineChartView(_ lineChartView: JBLineChartView!, didSelectLineAt lineIndex: UInt, horizontalIndex: UInt) { 
    if (lineIndex == 0){ 
     let data = activityChartData[Int(horizontalIndex)] 
     let key = activityChartLegend[Int(horizontalIndex)] 
     activityLabel.text = "Number of steps on \(key): \(data)" 
    } 
} 

Я довольно новые для кодирования в iOS, и они нашли ограниченную документацию по этому вопросу. Спасибо за любую помощь, которую вы можете предоставить!

ответ

0
func lineChartView(_ lineChartView: JBLineChartView!, verticalValueForHorizontalIndex horizontalIndex: UInt, atLineIndex lineIndex: UInt) -> CGFloat { 
    if (lineIndex == 0) { 
     return CGFloat(activityChartData[Int(horizontalIndex)]) 
    } 
    else if (lineIndex == 1) 
    { 
     return CGFloat(activityChartData2[Int(horizontalIndex)]) 
    } 
    return 0 
} 

Выполняйте функцию sameway для других функций. Вы заметите, что у них есть собственный lineIndex

: D

Смежные вопросы