回答編集履歴
2
1つ目の追記の誤りについて補足を書いておきました。
test
CHANGED
@@ -114,3 +114,11 @@
|
|
114
114
|
print(chart.highestVisibleX.rounded())
|
115
115
|
```
|
116
116
|
|
117
|
+
---
|
118
|
+
|
119
|
+
追記2つ目です。
|
120
|
+
1つ目の追記を書いてから気づきましたが、
|
121
|
+
この案だとx座標は再現できても、y座標は再現できませんね・・
|
122
|
+
ちょっと今は他の案が思いつきませんでした・・
|
123
|
+
ごめんなさい。
|
124
|
+
|
1
表示位置の再現についてを追記しました。
test
CHANGED
@@ -78,3 +78,39 @@
|
|
78
78
|
SwiftUIからUIKitのデリゲートを使う方法などはSwiftUIのチュートリアルを見ると良いかもしれません。
|
79
79
|
https://developer.apple.com/tutorials/swiftui/interfacing-with-uikit
|
80
80
|
|
81
|
+
---
|
82
|
+
|
83
|
+
追記です。
|
84
|
+
コメントありがとうございます。
|
85
|
+
|
86
|
+
すでにズームはできていたのですね。
|
87
|
+
|
88
|
+
ちょっと座標をどう扱っているのか難しいですね・・
|
89
|
+
GitHubのIssueを「scroll」などのキーワードで検索してみるのも良いかもしれません。
|
90
|
+
|
91
|
+
ヒントになりそうに思ったのは、座標で扱わなくても、データのx(xはインデックスですね)とyの値を指定することで表示する位置を変えることができるみたいでした。
|
92
|
+
次の例ではデータの最後の位置を表示する感じになるみたいです。
|
93
|
+
|
94
|
+
https://github.com/danielgindi/Charts/issues/450#issuecomment-954580674
|
95
|
+
|
96
|
+
```swift
|
97
|
+
private func viewChartFromTheEnd(chart: BarChartView) {
|
98
|
+
let lastIndex = chart.data!.dataSets.first!.entryCount - 1
|
99
|
+
let lastEntry = chart.data?.dataSets.first?.entryForIndex(lastIndex)
|
100
|
+
chart.centerViewTo(xValue: lastEntry!.x, yValue: lastEntry!.y, axis: .right)
|
101
|
+
}
|
102
|
+
```
|
103
|
+
|
104
|
+
それから見えている部分のxの最小と最大が次のように得られるみたいです。
|
105
|
+
ですので、これらを足して2で割ったものがcenter(xに相当する値)になると思います。
|
106
|
+
このインデックスを持つデータ(yに相当する値)を探して、
|
107
|
+
中心のxとyを保存しておくという感じにすれば、
|
108
|
+
`chart.centerViewTo`で表示位置が再現できそうに思いましたがどうでしょうか。
|
109
|
+
|
110
|
+
https://github.com/danielgindi/Charts/issues/4030
|
111
|
+
|
112
|
+
```swift
|
113
|
+
print(chart.lowestVisibleX.rounded())
|
114
|
+
print(chart.highestVisibleX.rounded())
|
115
|
+
```
|
116
|
+
|