2

いくつかの UIGestureRecognizers を持つ MPMoviePlayerController があります。通常のビューではうまく機能しますが、プレイヤーがフルスクリーンに入ると、イベントがバインドされていてもイベントが発生しません。

イベントをバインドする方法は次のとおりです。

UISwipeGestureRecognizer * nextChannelRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gotoNextChannel)];
    [nextChannelRecognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
    [[player.view.subviews objectAtIndex:0] setUserInteractionEnabled:YES];
    [[player.view.subviews objectAtIndex:0] addGestureRecognizer:nextChannelRecognizer];

    UISwipeGestureRecognizer * previousChannelRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(gotoPreviousChannel)];
    [previousChannelRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
    [[player.view.subviews objectAtIndex:0] addGestureRecognizer:previousChannelRecognizer];

    for (UIGestureRecognizer *g in ((UIView *)[player.view.subviews objectAtIndex:0]).gestureRecognizers) {
        NSLog(@"g %@", g.class);
    }

通常のビューと全画面表示では、ループ内のコードはこれらを出力します

MPTapGestureRecognizer
MPSwipeGestureRecognizer
UIPinchGestureRecognizer
MPActivityGestureRecognizer
UITapGestureRecognizer
UITapGestureRecognizer
UIPinchGestureRecognizer
UISwipeGestureRecognizer
UISwipeGestureRecognizer

プレーヤーのビューのビュー境界を持つ別の一時ビューを追加して、同じイベントをそれにバインドしようとしましたが、結果は同じでした。

なぜうまくいかないのか教えていただけますか?なにが問題ですか?

4

0 に答える 0