0

ユーザーがフロアプランに追加して調整するために、さまざまなクラスのオブジェクト (テーブル/椅子/ステージセグメントなど) を使用する ipad 用の会場レイアウトアプリを構築しています。

他のアプリでは、オブジェクトのパンと回転に UIgestures を使用しました。

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

CGPoint translation = [recognizer translationInView:self.view]; 
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y); 
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}

- (IBAction)rotateMe:(UIRotationGestureRecognizer *)recognizer{

recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
recognizer.rotation = 0;
}

ただし、このアプリのオブジェクトは通常の指よりも小さくなり、複数のタッチ ジェスチャが可能になります。

ビュー内の「回転」ボタンを選択したいと思います。これを押したままにすると、オブジェクトを1回タッチしてカスタム回転させることができます。

または、誰かが私をより良い選択肢に導くことができれば?

4

2 に答える 2

0

実行するのはかなり簡単なはずです。回転ボタンを押すと回転がオンになり、別のオブジェクトを押すと回転が実行されます。使用CGAffineTransformMakeRotationして回転させます。

yourObject.view.transform=CGAffineTransformMakeRotation(yourVariable*M_PI/180.0);

yourVariable を選択した角度だけインクリメントすると、毎回少しずつ回転します。つまり、90 ずつインクリメントすると、オブジェクトに触れるたびにオブジェクトが 90 度回転します。

于 2012-06-23T22:01:41.600 に答える
0

GitHub に KTOneFingerRotationGestureRecognizer というプロジェクトがあります。これは、1 本の指を使用して回転を行うカスタム回転ジェスチャ認識エンジンです。物体に着地し、中心に車軸があるかのように回転させます。形状の小ささによっては、うまくいくかもしれません。ビューに含まれる画像よりもビューを少し大きくする必要がある場合があります (つまり、パディングを追加します)。

于 2012-06-23T22:44:30.083 に答える