0
SwiftでiOS-Chartを使用して、データを表示するために折れ線グラフを描画したいと考えています。今、私は各点の横に小さいアイコンを置くという要件があります。iOS-Chartsポイントの横にUIImageを置く方法
今私は、グラフ上でUIImageを追加することができますが、問題は私が正しく、各ポイントのするCGPoint座標を得ることができる方法です。
デバイスまたはデバイスの種類の向きを変更しても、イメージの位置は固定されており、それに応じて変更されることはありません。ここにiPhone 6の写真があります。あなたは次の操作を行うためにLineChartRenderer.swift
内private func drawCircles(context context: CGContext)
を変更することができます
for i in 0..<dataPoints.count {
let pointLeft = lineChartView.getPosition(dataEntries[i], axis: .Left)
let image = UIImage(named: numbers[i])
let imageView = UIImageView(image:image!)
imageView.frame = CGRect(x: pointLeft.x, y: pointLeft.y, width: 16, height: 16)
lineChartView.addSubview(imageView)
}
実際には、LineChartRendererから拡張してdrawExtras(CGContext)をオーバーライドできます。これは、drawCircles(CGContext)がfileprivateとして宣言されているためです。 LineChartViewがあれば、新しく拡張されたLineChartRendererにNewChartRenderer(dataProvider:lineChartView、animator:lineChartView.chartAnimator、viewPortHandler:lineChartView.viewPortHandler)を割り当てることができます。 lineChartViewはLineChartView型の単なるIBOutletです。これは私の意見では、元のコードを変更するよりもはるかにクリーンです。 –