[SWIFT 3] Graphique

InsouInsou Membre
mars 2017 modifié dans API UIKit #1

Hello :)


 


Je suis en train d'essayer d'implémenter des graphiques dans mon application et j'ai un soucis..


 


J'utilise ça : https://github.com/danielgindi/Charts(car il à  l'air de faire plein de trucs facilement)


 


Après avoir dézipper l'archive :


- J'ai glissé Charts.xcodeproj dans mon projet.


- Je l'ai ajouté dans Embedded Binaries, d'ailleurs quand je l'ajoute, il n'y a que celui qui finit par macOs (alors que d'habitude j'ai toujours un truc qui finit par iOs.. déjà , je trouve ça bizarre..)


- J'ai créer un Chart-Bridging-Header.h dans mon projet avec dedans : 



#import "Charts.h"

Est-ce-que j'ai bien fait de faire ça ? 


 


Dans mon storyboard :


 


- J'ai ajouté une View


- Dans identify inspector, Custom Class, j'ai mis : Class = BarChartView, Module = Charts


 


Ensuite, voici mon code :



import UIKit
import Charts

class StatistiqueSafetyCheckViewController: UIViewController {

@IBOutlet weak var lineChartView: LineChartView! // C'est mon UIView

override func viewDidLoad() {
super.viewDidLoad()

let populationData :[Int : Double] = [
1990 : 123456.0,
2000 : 233456.0,
2010 : 343456.0
]

let ySeries = populationData.map { x, y in
return ChartDataEntry(x: Double(x), y: y)
}

let data = LineChartData()
let dataset = LineChartDataSet(values: ySeries, label: "Hello")
dataset.colors = [UIColor.red]
data.addDataSet(dataset)

self.lineChartView.data = data
self.lineChartView.gridBackgroundColor = UIColor.black
self.lineChartView.xAxis.drawGridLinesEnabled = true;
self.lineChartView.xAxis.labelPosition = XAxis.LabelPosition.bottom
self.lineChartView.chartDescription?.text = "Test ?"
}

override open func viewWillAppear(_ animated: Bool) {
self.lineChartView.animate(xAxisDuration: 1.0, yAxisDuration: 1.0)
}

}

Lorsque je lance mon appli, je n'ai aucun graphique, pourtant j'ai l'impression que ça fonctionne vu que j'ai quand même le contour, etc etc.. (voir pièce jointe)


 


Quelqu'un à  déjà  utiliser ce framework ?


Où est-ce-que j'ai louper un truc pour afficher mon graphique ? 


 


Merci de votre aide :)


 


Mots clés:

Réponses

  • InsouInsou Membre

    Ok j'ai rien dit.. ça fonctionne..


     


    C'est juste que j'avais pas de donnée dans un axe..


     


    Avec cet exemple, ça fonctionne vachement mieux ^^



    let ys1 = Array(1..<10).map { x in return sin(Double(x) / 2.0 / 3.141 * 1.5) }
    let ys2 = Array(1..<10).map { x in return cos(Double(x) / 2.0 / 3.141) }

    let yse1 = ys1.enumerated().map { x, y in return BarChartDataEntry(x: Double(x), y: y) }
    let yse2 = ys2.enumerated().map { x, y in return BarChartDataEntry(x: Double(x), y: y) }

    let data = BarChartData()
    let ds1 = BarChartDataSet(values: yse1, label: "Hello")
    ds1.colors = [NSUIColor.red]
    data.addDataSet(ds1)

    let ds2 = BarChartDataSet(values: yse2, label: "World")
    ds2.colors = [NSUIColor.blue]
    data.addDataSet(ds2)
    self.lineChartView.data = data
    self.lineChartView.gridBackgroundColor = NSUIColor.white
    self.lineChartView.chartDescription?.text = "Barchart Demo"

    Bon bah j'vais continuer la découverte de ce framework :)


  • LarmeLarme Membre

    Pourquoi n'as-tu pas utilisé CocoaPods ou Carthage ?


    Sinon, je t'invite à  regarder l'app de démo qui devrait t'aider quand ça bloque.


  • InsouInsou Membre

    J'sais pas, j'les ai jamais utilisé, c'est encore brouillon dans ma tête ces trucs là  (alors que j'ai quand même l'impression que c'est la base mais bon.. j'me suis toujours débrouillé sans ^^), j'trouve ça plus simple de drag and droppé dans le projet.


     


    C'est justement l'app de démo qui m'a aidé.. en fait fallait ouvrir l'app de démo de mac (en swift) et pas d'iOs (en objective-C)..


     


    D'ailleurs c'est normal de pouvoir ajouter dans les Embedded Binaries, les frameworks pour mac ?


    ça va pas poser soucis quelque part après ?


Connectez-vous ou Inscrivez-vous pour répondre.