2016-07-05 5 views
2

ユーザーがSwiftのCharts(iOSチャート)を使用して棒グラフのバーをクリックしたときに、MarkerViewを表示する方法を検索して検索しました。ユーザーがチャートをクリックしたときにMarkerViewを作成する

ドキュメントでは、MarkerViewsを使用してライブラリが "値を強調表示できます(カスタマイズ可能なポップアップビューで表示可能)"ことができますが、表示方法はわかりません。

ユーザーが棒グラフの棒をクリックすると、下の画像のように小さなツールチップが表示されます。棒グラフ上の

ツールチップ: enter image description here

私はバーが選択されたときに発火chartValueSelected機能準備を持っています。

答えて

5

Chartsを正しく使用していますか?

BallonMarker.swiftをチェックしましたか?

/ChartsDemo/Classes/Components/BallonMarker.swift

スウィフト

let marker:BalloonMarker = BalloonMarker(color: UIColor.redColor(), font: UIFont(name: "Helvetica", size: 12)!, insets: UIEdgeInsets(top: 7.0, left: 7.0, bottom: 7.0, right: 7.0)) 
marker.minimumSize = CGSizeMake(75.0, 35.0) 
chartView.marker = marker 

スウィフト3アップデート

let marker:BalloonMarker = BalloonMarker(color: UIColor.black, font: UIFont(name: "Helvetica", size: 12)!, textColor: UIColor.white, insets: UIEdgeInsets(top: 7.0, left: 7.0, bottom: 7.0, right: 7.0)) 
marker.minimumSize = CGSize(width: 75.0, height: 35.0) 
chartView.marker = marker 

のObjective-C

BalloonMarker *marker = [[BalloonMarker alloc] initWithColor:[UIColor colorWithRed:14.0/255.0 alpha:1.0] font:[UIFont systemFontOfSize:12.0] insets: UIEdgeInsetsMake(7.0, 7.0, 7.0, 7.0)]; 
marker.minimumSize = CGSizeMake(75.f, 35.f); 
_chartView.marker = marker; 
+0

うん、私は私のプロジェクトにBalloonMarkerクラスをインポートしたが、実際にマーカーを作成するための構文で苦労してきました。 –

+0

私のchartValueSelected関数では、BalloonMarkerオブジェクトを作成し、それをchartView.markerに割り当てました。 –

+0

あなたの返信ありがとう - これは非常に便利です。 スウィフトコードを追加しました。このコードをクリックすると、バーの上に黒いバブルが作成されます。バブルにbar yの値を表示したいBalloonMarkerのrefreshContentメソッドを使用する必要がありますか?または、値を割り当てることができるマーカーのプロパティがありますか? –

1

Objective Cのコードでスウィフトチャートライブラリは、このようなものになります..私はちょうどいくつかのコードスニペットを示すここにいます。

  1. ChartViewController.m

    -(void)initializeChart { 
    
        //chart specifications will go here 
        ... 
        ... 
    
        //set balloon marker to the chart 
        BalloonMarker *marker = [[BalloonMarker alloc] 
            initWithColor: kColorBrown1 
            font: [UIFont systemFontOfSize:12.0] 
            textColor: UIColor.whiteColor 
            insets: UIEdgeInsetsMake(8.0, 8.0, 20.0, 8.0)]; 
        marker.chartView = chartView; 
        marker.minimumSize = CGSizeMake(80.f, 40.f); 
        chartView.marker = marker; 
    } 
    
  2. BalloonMarker.swift

    import Charts 
    
    ... 
    
    ... 
    
    //This method will be called when ever user clicks on a chart to refresh the marker text. You need to specify the value here. 
    
    open override func refreshContent(entry: ChartDataEntry, highlight: Highlight) 
    
    { 
        setLabel(entry.y!)   
    } 
    
0

でもマーカーが表示されていない場合は、チャートにBalloonMarkerを追加した後に必ずマーカーことを確認チャートビューで有効にする

chartView.drawMarkers = true 

グラフデータセットでハイライト表示が有効になっています。これは、チャートデータセットを割り当てた後に行う必要があります。

chartView.data?.highlightEnabled = true 
関連する問題