これは私がかなり前から抱えていた問題です。新しい iOS6 と自動レイアウトにより、ジェスチャ認識エンジンの「ゲーム」が機能しなくなりました。
ストーリーボードを使用してアプリを作成しました。タブの 1 つで、ユーザーが 5 ピクセル、5% サイズ、5 度以内で別の画像の上に画像を拡大縮小、回転、およびパンする必要がある小さなゲーム アプリケーションがあります。自動レイアウトで私が抱えている問題は、ゲーム画像を回転およびスケーリングすると、画像が開始位置に「ジャンプ」し、中心ではなくぎこちなく回転することです。
回転ジェスチャとスケールジェスチャを処理するための私の方法を以下に示します。
回転する
//rotation gesture recognizer response
- (void)respondToRotateGesture:(UIRotationGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
image.transform = CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
}
if (gesture.state == UIGestureRecognizerStateEnded) [self didWin]; //not important for question
gesture.rotation = 0;
}
ピンチ
//pinch gesture recognizer
- (void)respondToPinchGesture:(UIPinchGestureRecognizer *)gesture {
if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
image.transform = CGAffineTransformScale(image.transform, gesture.scale, gesture.scale);
}
if (gesture.state == UIGestureRecognizerStateEnded) [self didWin]; //not important for question
gesture.scale = 1;
}
最も簡単な解決策は自動レイアウトをオフにすることですが、ストーリーボードでは 1 つのコンポーネントの自動レイアウトをオフにすることはできませんが、ストーリーボード全体でオフにする必要があるため、ストーリーボードの残りの部分で問題が発生します。
誰が私に何をすべきかアドバイスできますか?これは重大な問題であり、新しい自動レイアウトの「バグ」と呼ぶ人もいます。
私はこれに問題があり、助けが必要です
誰かが提案をしたり、正しい方向に私を向けることができれば、それは大歓迎です。ありがとう!
-ヘンリー