2

これは私の最初の質問ですが、この数か月間、このサイトを頻繁に使用しています (ありがとうございます)。

私の問題: iPad 用の分割ビュー プロジェクトがあります。DetailViewController では、UIButton を使用します。DetailViewController.hのコードを次に示します。

@property (strong, nonatomic) IBOutlet UIButton *button;
- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer;

DetailViewController.mでは、次のようにします。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRightDetected:)];
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    [self.button addGestureRecognizer:swipeRight];
}

- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer
{

    if (recognizer.view == self.button) {
    NSLog(@"YEAH");
    }
}

問題は、iOS 5.0.1 以前では完全に動作していたことです。今ではもう機能しません。他の方向には機能しますが、右方向には機能せず、DetailViewController でのみ機能します!! iPad を強さと速さで (平手打ちのように!) 叩いた場合にのみ機能し、シミュレーターでも同じことができます。スワイプを非常に非常に速く行った場合にのみ機能します!

バグだと思います..どうすればいいですか?同じ質問をアップル フォーラムに投稿してみてはいかがでしょうか。ありがとうございます!マルコ

4

2 に答える 2

7

これは、iOS5.1のスプリットビューコントローラーの新しい「スライディングプレゼンテーションスタイル」に関係していると思います。リリースノートpresentsWithGestureには、に設定することでこの動作を無効にできると記載されていますNO

別のオプションはgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:、ジェスチャレコグナイザーのデリゲートに実装することです。

于 2012-03-09T17:01:22.450 に答える
1

このStackOverflowページの素晴らしいヒントからこの回答を露骨にコピーしています: Master Table Application

AppDelegate.mファイルで、「didFinishLaunchingWithOptions」関数の最後に次の行を追加します

splitViewController.presentsWithGesture = false;

突然、右スワイプがマスター/詳細ページで再び機能するようになりました。

(ホッと一息。)

于 2012-07-13T13:22:22.993 に答える