1

UIPanGestureRocognizerを追加したUIViewサブクラスがあります。

_panGestureRecognizer = [[UIPanGestureRecognizer alloc]
                         initWithTarget:self action:@selector(handlePanGesture:)];
_panGestureRecognizer.maximumNumberOfTouches = 1;
_panGestureRecognizer.delegate = self;
[self addGestureRecognizer:_panGestureRecognizer];

このビューは、UISplitViewControllerを最上位のビュー/コントローラーとして含むビュー階層で使用されます。

iPadシミュレーターで横向きでこれをテストするときに、上/下/左に移動してパンを開始するhandlePanGesture:と、期待どおりにメソッドが呼び出されます。ただし、右に移動してパンを開始すると、handlePanGesture:メソッドは呼び出されません。なぜだめですか?

4

1 に答える 1

4

私がこの質問を書いている間、私は自分自身のために答えを見つけました:

iOS 5以降のUISplitViewControllerは、デフォルトで、右へのスワイプジェスチャを認識し、ポップオーバーコントローラーを表示します。これは縦向きでは明らかですが、横向きでは、縦向きのポップオーバーとして表示される左側のビューが常に横向きで表示されるため、ジェスチャは明らかな効果がありません。

これに対する解決策は、UISplitViewControllerのスワイプジェスチャを無効にすることです。

splitViewController.presentsWithGesture = NO;

両方のジェスチャーを機能させる方法があるかどうかはわかりません。

于 2012-08-16T13:09:31.767 に答える