やりたいこと
iOSで、画面タップをトリガーにして、アナログ時計の分針をぐりぐり回すアプリを作りたい!
前提条件
・ Swift or SwiftUI
聞きたいこと
画面タップ時に得られる値から、分針を指がある方向を示すための計算方法、および実装方法
やってみたこと
以下のコードのように、
「タップした画面の(X,Y)座標を取得」
↓
「アングル計算」
を経て、指と一緒に針が動くように、実装しようと思いましたが、 変な挙動になってしまいました。
ぐりぐり動かせるようご教授お願いいたします。
SwiftUI
1struct SumpleView: View { 2 @State var position: CGSize = CGSize(width: 200, height: 300) 3 4 var drag: some Gesture { 5 DragGesture() 6 .onChanged{ value in 7 self.position = CGSize( 8 width: value.startLocation.x 9 + value.translation.width, 10 height: value.startLocation.y 11 + value.translation.height 12 ) 13 } 14 .onEnded{ value in 15 self.position = CGSize( 16 width: value.startLocation.x 17 + value.translation.width, 18 height: value.startLocation.y 19 + value.translation.height 20 ) 21 } 22 23 } 24 func angle(a:Point, b:Point) -> Double { 25 var r = atan2(b.y - a.y, b.x - a.x) 26 if r < 0 { 27 r = r + 2 * Double.pi 28 } 29 return floor(r * 360 / (2 * Double.pi)) 30 } 31} 32struct Point { 33 var x:Double = 0 34 var y:Double = 0 35} 36
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。