いくつかの 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
プレーヤーのビューのビュー境界を持つ別の一時ビューを追加して、同じイベントをそれにバインドしようとしましたが、結果は同じでした。
なぜうまくいかないのか教えていただけますか?なにが問題ですか?