teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

21

修正

2021/08/24 10:58

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -128,7 +128,7 @@
128
128
  let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
129
129
  value = prg <= 0.5 ? max(0,prg) : min(1,prg)
130
130
  ```
131
- **8/24** 
131
+ **8/24 現状・メモ** 
132
132
  ```ここに言語を入力
133
133
  タッチした回数が初回だった場合
134
134
  if let touch = touches[touches.startIndex] as? UITouch {
@@ -165,4 +165,15 @@
165
165
 
166
166
  value = prg <= 0.5 ? max(0,prg) : min(1,prg)
167
167
  }
168
- ```
168
+ ```
169
+
170
+ 〜〜自分用メモ〜〜
171
+ **円の右を 0 として基準となり、360°周回すると 2π となる**
172
+ ![円の右を 0 として基準となり、360°周回すると 2π となる](27d73faf3548fb8fca6b7c575819a7f1.png)
173
+
174
+
175
+ **逆正弦atan2(アークタンジェント2)**
176
+ > atan2は点(x, y)とx軸によって表されるベクトルの角度(θ)を返します。
177
+ > よって位置から角度を求めることができます。
178
+
179
+ 参考:[2つの座標から角度や距離を求める](https://qiita.com/arthur87/items/23d3c896dafbc8223fd5)

20

追加

2021/08/24 10:58

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,5 @@
1
+ swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
2
+
1
3
  **やりたいこと:以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
2
4
 
3
5
  ![イメージ説明](b6b0cdd595b97faa1c65f045ebdfa23e.gif)
@@ -28,7 +30,7 @@
28
30
  // 中心点
29
31
  context.translateBy(x: 45, y: 46) //45
30
32
  // 回転する
31
- context.rotate(by: -selectionAngle * CGFloat.pi/180) //
33
+ context.rotate(by: -selectionAngle * CGFloat.pi/180)
32
34
 
33
35
  let selectionThumbPath = UIBezierPath(ovalIn: CGRect(x: 36.3, y: -4.13, width: 8, height: 8))
34
36
  thumbColor.setFill()
@@ -36,8 +38,15 @@
36
38
  //最近保存された状態に設定
37
39
  context.restoreGState()
38
40
  ```
41
+ **やったこと②**
42
+ 以下の部分にて、selectionAngleからマイナスをなくし、CGFloat.pi/180を150にしたところ
43
+ > context.rotate(by: **-**selectionAngle * CGFloat.pi/**180**)
44
+
45
+ > context.rotate(by: selectionAngle * CGFloat.pi/**105**)
46
+ ![イメージ説明](a683cb1b7e0c56f0ebcf444213740901.gif)
47
+ 少しだけ理想的な動きになりましたが、スライダーの操作がスライダーとシンクロしなくなってしまった。
39
48
 
40
- swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
49
+
41
50
  文字数の制限で全て載せられないのですが、メインのファイルは以下です。
42
51
  ```ViewController
43
52
  import UIKit

19

修正

2021/08/24 07:05

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- **以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
1
+ **やりたいこと:以下の青い「Single Slider」を「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
2
2
 
3
3
  ![イメージ説明](b6b0cdd595b97faa1c65f045ebdfa23e.gif)
4
4
 

18

修正

2021/08/24 04:00

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  ![イメージ説明](b6b0cdd595b97faa1c65f045ebdfa23e.gif)
4
4
 
5
- **やことのイメージ**
5
+ **やたこと**
6
+ 始点と終点をstartAngleとendAngleを210と-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
6
- ![イメージ説明](4eecd0bc7c1141975705c2a8eef2046a.jpeg)
7
+ ![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
8
+ 動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
7
9
 
8
- **現時点での理解は、UIBezierPathのclockwiseをflaseにすることで半時計周りにすることはできたが、始点と終点、スライダーのつまみの動きがどのように動作しているのか分からない状態です。**
9
-
10
10
  ```SliderKit
11
11
  clockwiseをtrueだと時計回り, falseだと反時計回り
12
12
  // UIBezierPathのインスタンス生成
@@ -77,15 +77,9 @@
77
77
  }
78
78
  ```
79
79
 
80
- **追記(現状):8/22 23:00**
81
- 始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
82
- ![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
83
- 動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
84
- 円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
85
- おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
86
- 反転させた円弧でもうまく動くと考えている。
87
- ![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
88
80
 
81
+
82
+
89
83
  **追記:8/23 12:00**
90
84
  スライダーの動きの範囲に関しては、PRGRounderSlider.swiftのここの部分で変更できる可能性があるのでどうやって動いているかじっくり試行錯誤で変更を試している状況です。
91
85
  ```PRGRounderSlider

17

修正

2021/08/24 03:59

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -131,6 +131,7 @@
131
131
  if let touch = touches[touches.startIndex] as? UITouch {
132
132
  rotationにrotationForLocationの座標を渡す
133
133
   let rotation = rotationForLocation(touch.location(in: self))
134
+         ・・・続く
134
135
  ```
135
136
 
136
137
  > 上のコードの引数:**rotationForLocation**(touch.location(in: self))について
@@ -145,6 +146,7 @@
145
146
 
146
147
 
147
148
  ```ここに言語を入力
149
+ ・・・続き
148
150
  // convert rad to angles
149
151
  var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi))
150
152
 

16

修正

2021/08/24 03:54

投稿

maplemee
maplemee

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- sゆうsSwift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
1
+ Swift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
body CHANGED
File without changes

15

修正

2021/08/24 03:52

投稿

maplemee
maplemee

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- Swift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
1
+ sゆうsSwift4 円弧状のスライダーのつまみの動き(時計回り)と角度を反転させたい
body CHANGED
@@ -119,7 +119,7 @@
119
119
  }
120
120
  ```
121
121
  **8/23 15:40
122
- 質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
122
+ 質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。**
123
123
  以下の部分ではmaxとminがあるのでここで、始点と終点の可動する制限を設定しているのでしょうか?
124
124
  ```ここに言語を入力
125
125
  let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))

14

追記

2021/08/24 03:49

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -125,7 +125,7 @@
125
125
  let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
126
126
  value = prg <= 0.5 ? max(0,prg) : min(1,prg)
127
127
  ```
128
- **8/24**
128
+ **8/24** 
129
129
  ```ここに言語を入力
130
130
  タッチした回数が初回だった場合
131
131
  if let touch = touches[touches.startIndex] as? UITouch {
@@ -133,14 +133,17 @@
133
133
   let rotation = rotationForLocation(touch.location(in: self))
134
134
  ```
135
135
 
136
- > 引数:touch.location(in: self)
136
+ > 上のコードの引数:**rotationForLocation**(touch.location(in: self))について
137
+ ```ここに言語を入力
137
138
  fileprivate func rotationForLocation(_ location: CGPoint) -> CGFloat {
138
- タッチした部分のX座標の半分とy座標の半分をoffsetとして
139
+ タッチした部分のX座標の半分とy座標の半分をoffsetとして
139
- > let offset = CGPoint(x: location.x - bounds.midX, y: location.y - bounds.midY)
140
+ let offset = CGPoint(x: location.x - bounds.midX, y: location.y - bounds.midY)
140
- その座標を返す?
141
+ その座標を返す?
141
- > return atan2(offset.y, offset.x)
142
+ return atan2(offset.y, offset.x)
142
- }
143
+ }
144
+ ```
143
145
 
146
+
144
147
  ```ここに言語を入力
145
148
  // convert rad to angles
146
149
  var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi))

13

追加

2021/08/24 03:42

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -38,8 +38,45 @@
38
38
  ```
39
39
 
40
40
  swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
41
+ 文字数の制限で全て載せられないのですが、メインのファイルは以下です。
42
+ ```ViewController
41
- 宜しくお願いします。
43
+ import UIKit
42
44
 
45
+ class ViewController: UIViewController {
46
+
47
+ @IBOutlet weak var sliderView: PRGRoundRangeSlider!
48
+         //今回扱っているスライダー
49
+ @IBOutlet weak var sliderContainerView: UIView!
50
+
51
+ override func viewDidLoad() {
52
+ super.viewDidLoad()
53
+ 〜省略〜
54
+ DispatchQueue.main.async {
55
+ self.setupSliderProgrammatically()
56
+ }
57
+ }
58
+
59
+ func setupSliderProgrammatically(){
60
+
61
+ let sliderView = PRGRoundSlider(
62
+ frame: sliderContainerView.bounds,
63
+ value: 0.5,
64
+ strokeColor: SliderKit.darkBlueColor, //SliderKit
65
+ strokeWidth: 5,
66
+ gradientColor: SliderKit.darkPinkColor, //SliderKit
67
+ startAngle: 130,// 210,
68
+ endAngle: 50, //-30,
69
+ startText: "0%",
70
+ endText: "100%"
71
+ ) //クロージャー
72
+ { (value) in
73
+ return "(Int(value*100))%" //0.5→50%にしてreturn
74
+ }
75
+ sliderContainerView.addSubview(sliderView)
76
+ }
77
+ }
78
+ ```
79
+
43
80
  **追記(現状):8/22 23:00**
44
81
  始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
45
82
  ![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)

12

修正

2021/08/24 03:36

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -87,4 +87,37 @@
87
87
  ```ここに言語を入力
88
88
  let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
89
89
  value = prg <= 0.5 ? max(0,prg) : min(1,prg)
90
+ ```
91
+ **8/24**
92
+ ```ここに言語を入力
93
+ タッチした回数が初回だった場合
94
+ if let touch = touches[touches.startIndex] as? UITouch {
95
+ rotationにrotationForLocationの座標を渡す
96
+  let rotation = rotationForLocation(touch.location(in: self))
97
+ ```
98
+
99
+ > 引数:touch.location(in: self)
100
+ fileprivate func rotationForLocation(_ location: CGPoint) -> CGFloat {
101
+ タッチした部分のX座標の半分とy座標の半分をoffsetとして
102
+ > let offset = CGPoint(x: location.x - bounds.midX, y: location.y - bounds.midY)
103
+ その座標を返す?
104
+ > return atan2(offset.y, offset.x)
105
+ }
106
+
107
+ ```ここに言語を入力
108
+ // convert rad to angles
109
+ var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi))
110
+
111
+ // We need to convert the rotation angle into paintcode oval angle
112
+ 両オペランド(両辺)がtrueだったとき
113
+
114
+ if realRotationAngle > -180 && realRotationAngle < -90 {
115
+
116
+ realRotationAngle = 180 + (180+realRotationAngle) //180
117
+ }
118
+
119
+ let prg = (realRotationAngle - startAngle) / (-1 * (startAngle + abs(endAngle)))
120
+
121
+ value = prg <= 0.5 ? max(0,prg) : min(1,prg)
122
+ }
90
123
  ```

11

質問

2021/08/24 00:14

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -82,4 +82,9 @@
82
82
  }
83
83
  ```
84
84
  **8/23 15:40
85
- 質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
85
+ 質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
86
+ 以下の部分ではmaxとminがあるのでここで、始点と終点の可動する制限を設定しているのでしょうか?
87
+ ```ここに言語を入力
88
+ let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
89
+ value = prg <= 0.5 ? max(0,prg) : min(1,prg)
90
+ ```

10

修正

2021/08/23 06:50

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -82,4 +82,4 @@
82
82
  }
83
83
  ```
84
84
  **8/23 15:40
85
- 質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
85
+ 質問:やはり上のコード部分(func updateRotationWithTouches)の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**

9

修正

2021/08/23 06:42

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -81,4 +81,5 @@
81
81
  }
82
82
  }
83
83
  ```
84
+ **8/23 15:40
84
- **8/23 15:40 質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**
85
+ 質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**

8

追加

2021/08/23 06:41

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -80,4 +80,5 @@
80
80
  value = prg <= 0.5 ? max(0,prg) : min(1,prg)
81
81
  }
82
82
  }
83
- ```
83
+ ```
84
+ **8/23 15:40 質問:やはり上のコード部分の仕組みが理解できません。ここの部分だけでもどなたか回答貰えると助かります。**

7

追加

2021/08/23 06:40

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -47,4 +47,37 @@
47
47
  円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
48
48
  おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
49
49
  反転させた円弧でもうまく動くと考えている。
50
- ![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
50
+ ![イメージ説明](af9533215f0ce97d3f566642f324590c.png)
51
+
52
+ **追記:8/23 12:00**
53
+ スライダーの動きの範囲に関しては、PRGRounderSlider.swiftのここの部分で変更できる可能性があるのでどうやって動いているかじっくり試行錯誤で変更を試している状況です。
54
+ ```PRGRounderSlider
55
+ override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
56
+ super.touchesBegan(touches, with: event)
57
+ updateRotationWithTouches(touches)
58
+
59
+ }
60
+
61
+ override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
62
+ super.touchesMoved(touches, with: event)
63
+ updateRotationWithTouches(touches)
64
+ }
65
+
66
+ func updateRotationWithTouches(_ touches: Set<NSObject>) {
67
+ if let touch = touches[touches.startIndex] as? UITouch {
68
+ let rotation = rotationForLocation(touch.location(in: self))
69
+
70
+ // convert rad to angles
71
+ var realRotationAngle = -(rotation * 180 / CGFloat(Double.pi)) //M_PI
72
+
73
+
74
+ // We need to convert the rotation angle into paintcode oval angle
75
+ if realRotationAngle > -180 && realRotationAngle < -90 {
76
+ realRotationAngle = 180 + (180+realRotationAngle)
77
+ }
78
+
79
+ let prg = (realRotationAngle - startAngle)/(-1 * (startAngle + abs(endAngle)))
80
+ value = prg <= 0.5 ? max(0,prg) : min(1,prg)
81
+ }
82
+ }
83
+ ```

6

修正

2021/08/23 02:55

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
- **以下の青い「Single Slider」の方の「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
1
+ **以下の青い「Single Slider」「左下と右下に位置する始点(0%)と終点(100%)」を、「始点(0%)を左上、終点(100%)を右上」に設置し、スライダーのつまみを真ん中の円の下側を潜るように反時計回りに半周して終わるように変更を加えたい。(そっくりそのまま逆さまの状態に)**
2
2
 
3
- ![![イメージ説明](46111fc6fef3a57b08a17dea5076f027.gif)
3
+ ![イメージ説明](b6b0cdd595b97faa1c65f045ebdfa23e.gif)
4
4
 
5
5
  **やりたいことのイメージ**
6
6
  ![イメージ説明](4eecd0bc7c1141975705c2a8eef2046a.jpeg)

5

修正

2021/08/22 14:26

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -41,11 +41,9 @@
41
41
  宜しくお願いします。
42
42
 
43
43
  **追記(現状):8/22 23:00**
44
- 始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してまだ、解決策を考えている。
44
+ 始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してどうやったら反時計回りでかつ0%から100%に辿り着けるようになるかまだ、解決策を考えている。
45
45
  ![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
46
- 動きに関しては以下のように0%からはうまく始まるが、
47
- ![イメージ説明]
48
- スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
46
+ 動きに関しては0%からはうまく始まるが、スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
49
47
  円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
50
48
  おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
51
49
  反転させた円弧でもうまく動くと考えている。

4

追加

2021/08/22 14:22

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -42,9 +42,9 @@
42
42
 
43
43
  **追記(現状):8/22 23:00**
44
44
  始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してはまだ、解決策を考えている。
45
- ![イメージ説明](5836c8960f4ce138d98a5f5dd048fa2f.png)
45
+ ![![イメージ説明](1bbfed7da0fe42b880c56aad492e1844.gif)
46
46
  動きに関しては以下のように0%からはうまく始まるが、
47
- ![イメージ説明](559a281ba1994d50d7f8dcf328f10a2e.png)
47
+ ![イメージ説明]
48
48
  スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
49
49
  円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
50
50
  おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、

3

追加

2021/08/22 14:19

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,13 @@
40
40
  swift3で書かれた[github](https://github.com/ispiropoulos/PRGRoundSlider)を参考にしております。
41
41
  宜しくお願いします。
42
42
 
43
+ **追記(現状):8/22 23:00**
44
+ 始点と終点をstartAngleとendAngleを210/-30から130と50に変更することで、左上と右上に移動させて円弧の描写をclockwise: falseで反転させることに成功。そこから先のスライダーの動きに関してはまだ、解決策を考えている。
45
+ ![イメージ説明](5836c8960f4ce138d98a5f5dd048fa2f.png)
46
+ 動きに関しては以下のように0%からはうまく始まるが、
47
+ ![イメージ説明](559a281ba1994d50d7f8dcf328f10a2e.png)
48
+ スライダーのつまみが100%の終点を超えて180度近く、先のところまで可動してしまう。
49
+ 円弧の計算の仕組みが難しいため、わかるまで苦戦中です。
50
+ おそらく「CGFloat.pi/180」の角度の設定に問題がある。ここら辺の動作に関する円弧の仕組みがわかれば、
43
- ```
51
+ 反転させた円弧でもうまく動くと考えている。
52
+ ![イメージ説明](af9533215f0ce97d3f566642f324590c.png)

2

修正

2021/08/22 14:09

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ![![イメージ説明](46111fc6fef3a57b08a17dea5076f027.gif)
4
4
 
5
+ **やりたいことのイメージ**
6
+ ![イメージ説明](4eecd0bc7c1141975705c2a8eef2046a.jpeg)
7
+
5
8
  **現時点での理解は、UIBezierPathのclockwiseをflaseにすることで半時計周りにすることはできたが、始点と終点、スライダーのつまみの動きがどのように動作しているのか分からない状態です。**
6
9
 
7
10
  ```SliderKit

1

修正

2021/08/21 12:20

投稿

maplemee
maplemee

スコア16

title CHANGED
File without changes
body CHANGED
@@ -24,8 +24,8 @@
24
24
  context.saveGState()
25
25
  // 中心点
26
26
  context.translateBy(x: 45, y: 46) //45
27
- // 90度回転する
27
+ // 回転する
28
- context.rotate(by: -selectionAngle * CGFloat.pi/180) //-selectionAngle *
28
+ context.rotate(by: -selectionAngle * CGFloat.pi/180) //
29
29
 
30
30
  let selectionThumbPath = UIBezierPath(ovalIn: CGRect(x: 36.3, y: -4.13, width: 8, height: 8))
31
31
  thumbColor.setFill()