UIGestureRecognizerView Controller の 1 つにa を追加していますview。
私の望ましい動作は、このジェスチャが認識されてジェスチャ ビュー コントローラを閉じ、別のビュー コントローラに転送することです。(転送したいView Controllerは、View Controllerにジェスチャーを提示しました)
現在、ビュー コントローラーを閉じると、ピンチ ジェスチャ レコグナイザーが (論理的に) 失敗しています。
助言がありますか?ありがとう。
UIGestureRecognizerView Controller の 1 つにa を追加していますview。
私の望ましい動作は、このジェスチャが認識されてジェスチャ ビュー コントローラを閉じ、別のビュー コントローラに転送することです。(転送したいView Controllerは、View Controllerにジェスチャーを提示しました)
現在、ビュー コントローラーを閉じると、ピンチ ジェスチャ レコグナイザーが (論理的に) 失敗しています。
助言がありますか?ありがとう。
\EDIT: これでデリゲートは、gestureRecognizer で引数を取得します。
次のようなプロトコルを実装できます。
@protocol ViewControllerWithGestureRecognizerDelegate
- (void)viewControllerGestureRecognizerEvent:(UIPinchGestureRecognizer *)gestureRecognizer;
@end
そして、Gesture Recognizer が表示される View Controller にデリゲート プロパティを追加します。
@property (nonatomic, weak) id<ViewControllerWithGestureRecognizerDelegate> delegate;
次に、Gesture Recognizer を View Controller に追加します。
UIPinchGestureRecognizer *gestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerAction:)];
[self addGestureRecognizer:gestureRecognizer];
ジェスチャ レコグナイザーのアクション メソッドでデリゲート メソッドを呼び出します。
- (void)gestureRecognizerAction:(UIPichGestureRecognizer *)gestureRecognizer
{
[self.delegate viewControllerGestureRecognizerEvent:gestureRecognizer];
}
プロトコル ViewControllerWithGestureRecognizerDelegate を 2 番目のビュー コントローラー (ジェスチャ認識イベントに関する通知を受け取りたい) に実装し、ジェスチャ認識エンジンが 2 番目のビュー コントローラーになるビュー コントローラーのデリゲートを設定します。
ViewControllerWithGestureRecognizer.delegate = ViewControllerInWhichYouWantToGetNotifiedAboutGestureRecognizerEvents.
このようにして、ジェスチャ レコグナイザーが 1 つのビュー コントローラーでメソッドを呼び出すたびに、2 番目のビュー コントローラーにそれが通知されます。
delaysTouchesEndedジェスチャーが認識されるまで、以下を含める必要があります。
@property (nonatomic) BOOL delaysTouchesEnded