質問編集履歴
3
誤字を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -121,7 +121,7 @@
|
|
121
121
|
Swift 5.0.1
|
122
122
|
Xcode 10.2.1
|
123
123
|
|
124
|
-
### 情報の追加・修正依頼を受け
|
124
|
+
### 情報の追加・修正依頼を受けての追記
|
125
125
|
|
126
126
|
RecordViewControllerのチャート生成部分の記述は以下のようになっております。
|
127
127
|
|
2
追記を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -119,4 +119,60 @@
|
|
119
119
|
|
120
120
|
### 補足情報(言語/FW/ツール等のバージョンなど)
|
121
121
|
Swift 5.0.1
|
122
|
-
Xcode 10.2.1
|
122
|
+
Xcode 10.2.1
|
123
|
+
|
124
|
+
### 情報の追加・修正依頼を受け手の追記
|
125
|
+
|
126
|
+
RecordViewControllerのチャート生成部分の記述は以下のようになっております。
|
127
|
+
|
128
|
+
```RecordViewController
|
129
|
+
//ChartViewを生成
|
130
|
+
let rect = CGRect.init(x:((self.view.bounds.width-self.view.bounds.width * 0.9)/2), y: 175, width: self.view.bounds.width * 0.9, height: 500)
|
131
|
+
let chartView = ChartView(frame: rect)
|
132
|
+
|
133
|
+
//表示
|
134
|
+
self.scrollView.addSubview(chartView)
|
135
|
+
|
136
|
+
//chartViewの位置を指定
|
137
|
+
scrollView.addSubview(chartView)
|
138
|
+
chartView.translatesAutoresizingMaskIntoConstraints = false
|
139
|
+
chartView.centerXAnchor.constraint(equalTo: scrollView.centerXAnchor).isActive = true
|
140
|
+
chartView.topAnchor.constraint(equalTo: dailyLabel.bottomAnchor, constant: 20).isActive = true
|
141
|
+
chartView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor, constant: 40).isActive = true
|
142
|
+
chartView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor, constant: 40).isActive = true
|
143
|
+
|
144
|
+
//Realmからチャート描画のためのデータを取得
|
145
|
+
ChartView.createData { recordDataArray in
|
146
|
+
|
147
|
+
ChartView.lastSevenRecords = recordDataArray
|
148
|
+
|
149
|
+
//期間中のスコア全て配列に格納
|
150
|
+
var scoreArray = [Int16]()
|
151
|
+
for recordData in recordDataArray {
|
152
|
+
|
153
|
+
scoreArray.append(recordData.score)
|
154
|
+
|
155
|
+
}
|
156
|
+
|
157
|
+
//期間中の最高スコアを取得
|
158
|
+
let maxScore = Int(scoreArray.max()!)
|
159
|
+
|
160
|
+
if maxScore == 0 {
|
161
|
+
|
162
|
+
ChartView.maxValue = 10 * 100
|
163
|
+
|
164
|
+
} else {
|
165
|
+
|
166
|
+
//最高スコアを10の倍数に切り上げたものをChartViewのmaxValueに代入
|
167
|
+
ChartView.maxValue = self.getTenTimesNumber(num: maxScore, base: 10) * 100 //この100はmaxValueの値をyAxisHeightより大きくするために必要なもの
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
let node = ChartView.createChart()
|
172
|
+
//取得したデータをチャート描画するために反映させアニメーション
|
173
|
+
chartView.updateShape(node: node)
|
174
|
+
chartView.contentMode = .scaleAspectFit
|
175
|
+
ChartView.playAnimations()
|
176
|
+
|
177
|
+
}
|
178
|
+
```
|
1
微調整
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,9 +11,9 @@
|
|
11
11
|
|
12
12
|
ページは上の3ページで構成されており、ページ2でデータの変更&保存ができます。3ページ目はその保存されたデータを元にチャートを表示するようにしております。
|
13
13
|
|
14
|
-
初期表示が2ページ目になっており、**初めて2ページ目から3ページ目にいくとき**は2ページ目で変更や保存したデータが適切に表示されます。
|
14
|
+
初期表示が2ページ目になっており、**初めて2ページ目から3ページ目にいくとき**は2ページ目で変更や保存したデータが適切にチャートで表示されます。
|
15
15
|
|
16
|
-
ですがその後スワイプでページ2に戻ってから、データを更新してページ3にいくとその結果が反映されず、先ほど表示された
|
16
|
+
ですがその後スワイプでページ2に戻ってから、データを更新してページ3にいくとその結果が反映されず、先ほど表示されたチャートがそのまま表示されてしまいます。
|
17
17
|
|
18
18
|
どのようにすれば毎回2ページ目から3ページ目に行くときは初めて2ページ目から3ページ目にいくときの挙動にできるでしょうか?
|
19
19
|
|