我尝试向player.view.subviews[0].
我用谷歌搜索多次但无法获得有效的解决方案。
我的代码很正常。就像
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
UIView *subView = player.view.subviews[0];
[subView addGestureRecognizer:swipeLeft];
当播放器处于全屏模式时,它适用于IOS5但不适用于6。 有什么建议吗?
答案 0 :(得分:2)
当Mpmovieplaertsontroller进入全屏模式时,它会创建一个额外的窗口(通常是应用程序窗口列表中的最后一个)。由此我们可以测试所有可能的视图和子视图,并找到必要的控件。然后你可以把你需要的一切。 例如,如何将滑动添加到MPMoviePlayer。
- (void)didEnterFullScreen:(NSNotification*)notification {
[NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(showFullScreenControls) userInfo:nil repeats:NO];
}
- (void)showFullScreenControls {
NSArray *windows = [[UIApplication sharedApplication] windows];
UIWindow* mpfullscreenwindow = [windows lastObject];
gestureView = mpfullscreenwindow.subviews[0];
testbutton = [UIButton buttonWithType:UIButtonTypeSystem];
[testbutton setTitle:@"Test" forState:UIControlStateNormal];
testbutton.frame = CGRectMake(10, 50, 100, 50);
testbutton.backgroundColor = [UIColor greenColor];
[testbutton addTarget:self action:@selector(alertBtnAction) forControlEvents: UIControlEventTouchUpInside];
[mpfullscreenwindow addSubview:testbutton];
[gestureView addGestureRecognizer:_leftSwipeRecognizer];
[gestureView addGestureRecognizer:_rightSwipeRecognizer];
}
答案 1 :(得分:0)
您可以将识别器添加到您自己的视图(包含播放器视图的视图)中,而不是将手势识别器添加到其中一个播放器的视图中。请务必清除cancelsTouchesInView
,以便在触摸时给出基础视图。
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
swipeLeft.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:swipeLeft];
我已经在同样的情况下成功使用了这种方法。
答案 2 :(得分:0)
当玩家进入全屏模式时(首先捕获该通知事件),我能够向窗口添加手势识别器。
v49-52