2017-09-28 4 views
1

Donc, j'essaie de créer un marqueur personnalisé à partir d'un fichier xib. Je regarde l'échantillon RadarMarkerView, c'est fondamentalement la même chose. Le problème est que le programme compile mais le marqueur n'apparaît pas.Comment créer un marqueur de surbrillance ios-charts personnalisé avec xib?

Ceci est ma classe marqueur sur mesure

open class DailyMarker: MarkerView { 

     @IBOutlet weak var powerLabel: UILabel! 
     @IBOutlet weak var hourLabel: UILabel! 

     override open func awakeFromNib() { 
      self.offset.x = -self.frame.size.width/2.0 
      self.offset.y = -self.frame.size.height - 7.0 
     } 
     open override func refreshContent(entry: ChartDataEntry, highlight: Highlight) { 
      powerLabel?.text = String.init(format: "%.2f kWh", entry.y) 
      hourLabel?.text = "Hora" 
      layoutIfNeeded() 
     } 
    } 

J'ai créé un xib avec le même nom « DailyMarker.xib » et dans le champ Custom Class je me mis à DailyMarker.

Voici le code graphique où je mets le marqueur

let dailyMarker: DailyMarker = DailyMarker() 
dailyMarker.chartView = lineChartView 
lineChartView.marker = dailyMarker 

Je veux juste créer un marqueur arrondi avec des bordures. Quelqu'un pourrait-il m'aider?

Répondre

1

Donc, je l'ai eu à travailler!

Je pense qu'il manquait le .viewFromXib dans le fichier que j'instanciais le graphique. C'est mon code mis à jour

let dailyMarker: DailyMarker = (DailyMarker.viewFromXib() as? DailyMarker)! 
dailyMarker.chartView = lineChartView 
lineChartView.marker = dailyMarker 

Se souvenant que l'inspecteur du fichier que vous mettez xib la classe de la vue même du fichier rapide. Dans ce cas, c'était DailyMarker. Il n'est pas nécessaire de définir le propriétaire de l'espace réservé.