頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


UIGestureRecognizerでピンチと回転を両立させる

画面に表示されてるオブジェクトをズームした後に回転させたい時ってあるじゃない。これを実装しようとしたのよ。
UIGestureRecognizerのサブクラスに
UIPinchGestureRecognizer
UIRotationGestureRecognizer
ってのがあって、それぞれのオブジェクトを画面にaddGestureRecognizer: これでいいと思うよね。

ところがこれだとどちらか片方しか反応してくれず、例えばズームした後に一度画面から指を離して、それから回転させることになるのよ!えー?マジかよ、Appleのマップでも指を離さず拡大も回転もできるのに!

これってもしかして、自分でタッチされてる二点の位置関係を把握して拡大縮小、回転できるようにコード書かないとダメなのかな、面倒だなー、と思ったんだけど、よくよくリファレンスを確認すると
UIGestureRecognizerDelegateに
- (BOOL)gestureRecognizer:(UIGestureRecognizer * _Nonnull)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer * _Nonnull)otherGestureRecognizer
ってのがあって、ここでYESを返すと解決。
iOS 3.2以降なので新しい機能でもなんでもないけど、今まで扱ったことなかったので知りませんでしたわ。

<< コタツの足を長くしたい  TopPage  自作の台でスタンディングデスクに >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/984-171a5260




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad