やりたいこと
line chartを作るため、swift Chartsを使っています。
添付画像のようなchartの赤丸部分の座標を取得することで、
その部分にアニメーションするviewを被せたいと考えています。
前提
swift5
Xcode:11.1
↓ライブラリCharts
https://github.com/danielgindi/Charts
考えていること
chartValueSelectedでタップイベントが発生した際に、
highLightされた値のxとyが取得できることがわかっています。
なので、プログラムでchartValueSelectedを赤丸部分をタップしたことにして発動させれば、
座標を取得できるのではないかと考えています。
ここまで考えてつまってしまいました、、、
それ以外にライブラリ対応機能などがあれば、
教えていただければ助かります。
プログラムで配列の最後を選択したつもりのもの
以下がプログラムで配列の最後をタップしたことにして、
「chartValueSelected」を発動させようとしたものです。(発動してない)
そもそもhighLightは値タップという訳ではないのでしょうか、、、?
Swfit
1 //最初に表示させるデータをセットする 2 func setData(datas: [(value:Double, time:Double)]) { 3 var dataEntries:[ChartDataEntry] = [] 4 //一回forで回す 5 for i in 0..<30 { 6 let entry = ChartDataEntry() 7 entry.x = datas[i].time 8 // entry.x = Double(i) 9 entry.y = datas[i].value 10 11 dataEntries.append(entry) 12 } 13 //ソートしないとエラーが起きる 14 dataEntries.sort(by: { $0.x < $1.x }) 15 //特定の値だけサークルの色を変えるための変数 16 // var circleColors = [NSUIColor]() 17 //ソートした後にもう一回forで回す(これは最初に表示させる分) 18 for i in 0..<20 { 19 let entry = ChartDataEntry() 20 entry.x = dataEntries[i].x 21 entry.y = dataEntries[i].y 22 23 dataEntries.append(entry) 24 } 25 let set1 = LineChartDataSet(entries: dataEntries) 26 27 //左を軸にchartを開始 28 set1.axisDependency = .left 29 //線の色 30 set1.setColor(UIColor(red: 51/255, green: 181/255, blue: 229/255, alpha: 1)) 31 //描画される線の見え方 32 set1.mode = .linear 33 //線の太さ 34 set1.lineWidth = 1.0 35 //線の各値の丸ポチを消す 36 set1.drawCirclesEnabled = false 37 //線の上の各値の丸ポチの真ん中丸を消す 38 set1.drawCircleHoleEnabled = false 39 //19番目だけ丸ポチ表示 40 // set1.circleColors = circleColors 41 //線の上に乗った各値を消す 42 set1.drawValuesEnabled = false 43 let data = LineChartData(dataSet: set1) 44 lineChartView.data = data 45 46 lineChartView.highlightValue(Highlight(x: dataEntries[19].x, y: dataEntries[19].y, dataSetIndex: 0)) 47 48 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/17 02:45
2020/09/17 03:00
2020/09/17 03:26
2020/09/17 04:02
2020/09/17 04:27 編集
2020/09/17 08:17
2020/09/17 09:00
2020/09/17 09:59
2020/09/17 10:47