0

この投稿のこのコードを使用して、uiimageview の回転を正常に実装しました。

iPhone - ホイール トラッキング フィンガーが同じ開始位置にジャンプしますか?

仲間の開発者への私の質問は、タッチしているユーザーが画像を時計回りと反時計回りの両方に回転できるということです。ユーザーがビューを移動している方向を検出できる方法はありますか?

私は時計アプリを作っているので、それは私にとって重要です。ユーザーに分針を 0 分から 60 分まで動かさせました。そこまで来たら、時針を一つ上げます。しかし、ユーザーは分針を反時計回りに回すことができます。その場合、時針を 1 つ下に移動する必要があります。何か案は?

4

1 に答える 1

3

「lastPoint」という名前のメンバー変数を設定して、最後に移動したときのポイントを記録できます。

次回は方向を計算できます


CGPoint lastPoint;


- (void) touchedBegin:(NSSet *)touches withEvent:(UIEvent *)event {
    lastPoint = [touch locationInView:self.view];
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSSet *allTouches = [event allTouches];

//you can save the point , then used in next time you want

int tInput = [allTouches count]-1;

UITouch *touch =[[allTouches allObjects] objectAtIndex:tInput];
CGPoint location = [touch locationInView:self.view];
float theAngle = atan2( location.y-imageX.center.y, location.x-imageX.center.x );

float theLastAngle =  atan2( lastPoint.y-imageX.center.y, lastPoint.x-imageX.center.x );

lastPoint = location;

// compare theAngle & theLastAngle , so you can know it is clockwise or counterclockwise.
}

于 2012-04-18T01:47:38.113 に答える