2016-11-29 2 views
2

Я использую Charts, чтобы нарисовать круговую диаграмму. Он работает нормально, но мне нужно передать индекс выбранной части в следующий диспетчер представлений. Я использовал ниже код, а также прочитал их release notes для графиков 3.0. Я работаю в Swift 3. В предыдущей версии выбранный индекс был получен из entry.dataSetIndex.danielgindi/Charts Chart Chart selected index

С помощью этого кода я всегда получаю индекс 0. Любая помощь пожалуйста.

extension ViewController: ChartViewDelegate { 

    func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { 

     print(highlight.dataSetIndex) 
    } 

} 

ответ

5

Использование IOS 3.0.0 Диаграммы, следующий код выводит выбранный индекс:

class ChartController: UIViewController, ChartViewDelegate { 

func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { 

    if let dataSet = chartView.data?.dataSets[ highlight.dataSetIndex] { 

     let sliceIndex: Int = dataSet.entryIndex(entry: entry) 
     print("Selected slice index: \(sliceIndex)") 
    } 
} 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    // 1. create chart view 
    let chart = PieChartView(frame: self.view.frame) 
    chart.delegate = self 

    // TODO: exercise for reader...add data, styles, etc. 
} 
+0

Я действительно ценю ваш ответ и экономит мое время. На самом деле спасибо за сообщение. –

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