允许点击YTPlayerView播放视频或让按钮覆盖YTPlayerView

时间:2014-09-17 01:33:55

标签: ios youtube-api ytplayerview

我使用YouTube iOS Player Helper View并且播放器本身效果非常好。但是,我希望用户能够点按视频并让它开始播放。我尝试将UITagGestureRecognizer添加到YTPlayerView,但它没有注册任何我的水龙头。

我在我的视图中添加了一个UIButton,并将其连接到我的IBAction,告诉YTPlayerView播放,并且工作正常。但是,我希望它向用户显示,就好像他们已经点击了视频本身一样。因此,我将我的UIButton调整为与YTPlayerView相同的大小,并将UIButton放在YTPlayerView的顶部。

点击UIButton不再有效......差不多了。 YTPlayerView左侧,右侧或底部的任何水龙头都不起作用。 YTPlayerView上方的点击仍然可以通过。所以,如果我将UIButton向上移动10个像素,我可以点击10个像素的条带,我的IBAction将被调用。如果我将UIButton 10(或30)像素移动到左侧,右侧或底部,则没有任何一个按钮可以通过我的IBAction。

在下图中,我的UIButton具有透明的绿色背景,以便您可以看到它背后的内容。 (我用完全不透明测试它,它的行为方式相同,透明度不是问题。)如果我点击红色框内的绿色区域(即YTPlayerView上方),那么我的IBAction按预期调用。如果我点击红色框外面的绿色区域(即YTPlayerView的左侧,右侧或下方),那么我从未收到过我的IBAction。

整个视图都包含在UIScrollView中。我尝试将UITapGestureRecognizer添加到self.view中,当我尝试点击YTPlayerView时,该点击会传递给我,就像它击中了UIScrollView而不是YTPlayerView。

img

1 个答案:

答案 0 :(得分:0)

忽略滚动视图的触摸或从滚动视图转到触摸按钮

向playerview添加手势

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{

    if (someScrollView.superview != nil) {
        if ([touch.view isKindOfClass:[UIButton class]])
            {
            return YES; // handle the touch
            }
    }
    return NO; // ignore the touch

}