2014-12-03 78 views
1

我有一個AVPlayerViewController,它將在其頂部有一些視圖(僅當它處於全屏模式時)。視圖上有手勢識別器(這些工作)。問題是,當用戶點擊其中一個視圖(他們是不可見的)時,玩家也不會收到觸摸...我需要玩家顯示玩家控件然後..將點擊手勢從UIView傳遞到底層AVPlayer

這就是我添加

_topHelperView = [[UIView alloc] init]; 
    _topHelperView.backgroundColor = [UIColor purpleColor]; 
    _middleHelperView = [[UIView alloc] init]; 
    _middleHelperView.backgroundColor = [UIColor redColor]; 
    [self setHelperFrames]; 

    _topTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleHelperTapGesture:)]; 
    _topTapGestureRecognizer.delegate = self; 
    _topTapGestureRecognizer.cancelsTouchesInView = NO; 
    _middleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleHelperTapGesture:)]; 
    _middleTapGestureRecognizer.cancelsTouchesInView = NO; 
    _middleTapGestureRecognizer.delegate = self; 

我還實施了委託的看法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    return YES; 
} 
// this enables you to handle multiple recognizers on single view 
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    NSLog(@"should Handle simultaneously %@ %@",gestureRecognizer,otherGestureRecognizer); 
    return YES; 
} 

這不工作..播放器不顯示控件時,無論視圖被竊聽..那隻能說明他們的時候它直接點擊.. 任何解決方法?

回答

1

當視圖(實際上是UIResponder)響應它們時,觸摸事件停止。因此,如果您的手勢識別器附加到AVPlayerViewController頂部的視圖上,則手勢識別器將捕獲這些事件,而AVPlayerViewController則不會。這是設計。

爲什麼不讓視圖響應用戶的手勢向AVPlayerViewController發送消息? AVPlayerViewController有一個屬性showsPlaybackControls。如果您希望播放器顯示其控件,請將其設置爲YES。