3

UIGestureRecognizerView Controller の 1 つにa を追加していますview

私の望ましい動作は、このジェスチャが認識されてジェスチャ ビュー コントローラを閉じ、別のビュー コントローラに転送することです。(転送したいView Controllerは、View Controllerにジェスチャーを提示しました)

現在、ビュー コントローラーを閉じると、ピンチ ジェスチャ レコグナイザーが (論理的に) 失敗しています。

助言がありますか?ありがとう。

4

3 に答える 3

1

\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 番目のビュー コントローラーにそれが通知されます。

于 2013-07-18T19:17:55.647 に答える
0

delaysTouchesEndedジェスチャーが認識されるまで、以下を含める必要があります。

@property (nonatomic) BOOL delaysTouchesEnded
于 2013-10-15T12:04:36.960 に答える