2010-12-15 11 views
1

私はMPMoviePlayerViewControllerをインスタンス化し、それにムービーをロードします。ユーザーがプレーヤーのどこに触れたときに、どうすれば検出できますか?MPMoviePlayerViewControllerのタッチを検出する方法

オーバーレイを追加して、そのように機能します。しかし問題は、今ではプレイヤーのコントロール(ボリューム、一時停止など)がないことです。これを表示する通知はありますか?

+0

MoviePlayerControllerをサブクラス化するのが最善の方法ですが、ビューを閉じるには1回タップを処理する必要がある場合はf.e.イントロビデオのために、私は単純な解決策を行った... – bontoJR

+0

しかし、私はそれをサブクラス化したくない...他の方法が必要です...私はオーバーレイビューを持っています。ムービー...このようにしようとしましたが、運は無かったのです..UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:自己アクション:@selector(movieTapped :)]; [player.movi​​ePlayer.view addGestureRecognizer:tap]; – 1110

+0

質問が更新されましたので、ご確認ください。 – 1110

答えて

1

ムービープレーヤの親であるビューにジェスチャ認識機能を追加することがあります。

ジェスチャーレコグナイザーにデリゲートを追加して、正確に何がヒットしたのかを確認し、ジェスチャーレコグナイザーイベントがメディアプレーヤーでなかった場合は破棄することができます。

コードは次のようになります。もう一つの簡単なオプションは、ムービープレーヤーのビューの上に大きな目に見えないボタンを配置することである

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    UIView *treffer = [app.window hitTest:[touch locationInView:app.window] withEvent:nil]; 

    if (treffer == yourvideoplayerview) return YES; 
    return NO; 
} 
0

あなたは2人のレクチャーが戦っているかもしれません。あなたは、ジェスチャー認識器のデリゲートとして自分自身を設定し、実装、<UIGestureRecogniserDelegate>に準拠して、あなたから親コントローラを認識器を追加することができます。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

だから彼らはすべて楽しく一緒に演奏することができます。

関連する問題