これは面白そうに聞こえるかもしれませんが、UIViewといくつかのトリガーを使用して、リアルな回転でノブを再作成するのに何時間も費やしました。目標を達成しましたが、ノブが左右に回転しているかどうかがわかりません。数学の最も適切な部分はここにあります:
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {{ UITouch * touch = [touches anyObject]; CGPoint pt = [touch locationInView:self]; float dx = pt.x-iv.center.x; float dy = pt.y-iv.center.y; float ang = atan2(dy、dx); //回転を行います if(deltaAngle == 0.0){ deltaAngle = ang; initialTransform = iv.transform; }そうしないと {{ float angleDif = deltaAngle-ang; CGAffineTransform newTrans = CGAffineTransformRotate(initialTransform、-angleDif); iv.transform = newTrans; currentValue = [self goodDegrees:radiansToDegrees(angleDif)]; } }
理想的には、数値を利用して、回転が正か負かを教えてくれます。