2017-01-24 2 views
0

私はデザインのように見せたい棒グラフを使用しています。デザインのバーは一番下に少しオーバーフローし、その上に透明グラデーションがあります。私はあなたがこれに使用できるプロパティを見つけることができず、私はどこかで上書きする必要があると思う。私はまた、棒の位置/範囲でグラフの上にレイヤーを成功させることなく描こうとしました。ios-chartsスウィフト - 意図的にブリード/オーバーフローするチャートバーのグラフ

BarChartRendererをオーバーライドしてY位置を変更しようとしましたが、グラフはデフォルトで「スクロール可能」となっているため、バーがクリップされます。それは一番下の行に正しい試してこれを設定するよう

doubleTapToZoomEnabled = false 
highlightPerDragEnabled = false 
highlightPerTapEnabled = false 
clipValuesToContentEnabled = false 

graph - i want right

+0

あなたはyoureコードを共有できますか? –

答えて

0

バーの上に自分のレイヤーを描画し、次にアンチエイリアスのために古いバーを削除することで解決しました。こうすることで、グラデーションの実装も簡単になり、グラフを移動/拡大することができなくなるために機能します。

let bottomY = self.contentRect.maxY - leftAxis.gridLineWidth 
    for (_, bar) in self.barData!.dataSets.enumerated() { 
     let layer = CALayer(), 
     barBounds = self.getBarBounds(entry: bar.entryForIndex(0)! as! BarChartDataEntry), 
     // 30 extra height at bottom 
     frame = CGRect(x: barBounds.minX, y: barBounds.minY, width: barBounds.width, height: (bottomY - barBounds.minY) + 30) 
     // Set the new frame size, Z position and background 
     layer.frame = frame 
     layer.zPosition = 10 
     layer.backgroundColor = bar.color(atIndex: 0).cgColor 
     // Add the new bar layer and remove old bar 
     self.layer.addSublayer(layer) 
     bar.clear() 
    } 
1

あなたは最小軸値を設定することができます。 は、私はすでに、私はそれらを必要としないため、機能をズーム/移動/スクロールを無効にしてきましたコードとして

barChartView.leftAxis.axisMinimum = __Your minimum bar value__ i.e. 17000 //that is mention in your above graph 
関連する問題