我使用的是YouTube iOS Player Helper View,播放器本身运行得很好。然而,我希望用户能够点击视频,并让它开始播放。我尝试向YTPlayerView添加一个UITagGestureRecognizer,但它没有注册我的任何点击。
我在我的视图中添加了一个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一样。

发布于 2014-10-14 20:33:14
忽略触摸以滚动查看或将触摸从滚动视图向前移动到按钮
向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
}https://stackoverflow.com/questions/25880924
复制相似问题