2017-05-09 3 views
0

Je cherche une implémentation de marqueur pour graphique linéaire. J'utilise swift 3. toutes mes recherches ont échoué, et j'ai besoin d'aide.Comment créer un marqueur dans ios-chart

Je suis passé par this étapes, mais cela ne semble pas fonctionner correctement.

J'ai deux graphiques et quand je les touche - il n'y a pas d'action (exemple ci-dessous). enter image description here

@IBOutlet weak var modelLineChartView: LineChartView! 
@IBOutlet weak var lineChartView: LineChartView! 

....

func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { 
     let graphPoint = modelLineChartView.getMarkerPosition(highlight: highlight) 
     let graphPointt = lineChartView.getMarkerPosition(highlight: highlight) 
     print(graphPoint.x) 
     print(graphPointt.x) 
    } 

S'il vous plaît aidez-moi, je suis coincé.

Répondre

1

La raison pour laquelle le code dans l'autre thread ne fonctionne pas est que la fonction chartValueSelected est légèrement différente dans swift 3.0 que dans les versions plus anciennes. J'ai créé un projet de test et avec ce code chaque fois que vous cliquez sur une valeur, il est imprimé:

import Charts 

class ViewController: UIViewController, ChartViewDelegate { 

@IBOutlet weak var testLineChartView: LineChartView! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    testLineChartView.delegate = self 

    let data = generateLineData() 
    testLineChartView.data = data 

} 

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

    print("entry.value \(entry)") 

} 

func generateLineData() -> LineChartData { 
    let data: LineChartData = LineChartData() 


    var entries: [ChartDataEntry] = [] 

    var dataArr: [Int] = [] 
    dataArr.append(10) 
    dataArr.append(5) 
    dataArr.append(8) 
    dataArr.append(12) 
    dataArr.append(10) 


    for index in 0..<5 { 
     entries.append(ChartDataEntry(x: Double(index)+0.5, y: Double(dataArr[index]))) 
    } 

    let set: LineChartDataSet = LineChartDataSet(values: entries, label: "Label") 
    set.setCircleColor(UIColor.blue) 
    set.lineWidth = 1 
    set.circleRadius = 5 
    set.drawCircleHoleEnabled = false 
    set.valueTextColor = UIColor.blue 
    set.valueFont = UIFont(name: "Verdana", size: 12.0)! 
    set.drawFilledEnabled = true 
    set.mode = Charts.LineChartDataSet.Mode.linear 
    set.axisDependency = Charts.YAxis.AxisDependency.left 

    data.addDataSet(set) 

    return data 
} 


} 
+0

Merci beaucoup! C'est parfait!) – rolyanos

+0

Bon pour l'entendre, pouvez-vous s'il vous plaît marquer la réponse comme la réponse acceptée? – DevB2F

+0

@ DevB2F J'ai utilisé votre fonction 'chartValueSelected' mais où utiliser cette fonction pour afficher les valeurs dans la vue des marqueurs. Il affiche simplement toutes les valeurs dans la fenêtre de débogage –