从迁移到MPMoviePlayer已经AVkit给我带来了一个阻塞问题。
我需要显示在AVPlayerViewController定制的tableView。 我可以这样实现代码如下低谷
[self.avVideoPlayer.contentOverlayView addsubiew:self.mycustomTableView]
并且它是可见的,但它并没有收到任何点击/滑动事件。
任何想法,为什么发生这种情况或我怎么能在哪里会收到触摸事件,即使在全屏模式下的地方添加表格视图?
从迁移到MPMoviePlayer已经AVkit给我带来了一个阻塞问题。
我需要显示在AVPlayerViewController定制的tableView。 我可以这样实现代码如下低谷
[self.avVideoPlayer.contentOverlayView addsubiew:self.mycustomTableView]
并且它是可见的,但它并没有收到任何点击/滑动事件。
任何想法,为什么发生这种情况或我怎么能在哪里会收到触摸事件,即使在全屏模式下的地方添加表格视图?
[self.view addSubview:btn];
这将在最小化的播放器添加的按钮。
现在的全屏情况下,您需要添加一个观察员videoBounds,这里是我的代码:
[self.avVideoPlayer addObserver:self forKeyPath:@"videoBounds" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL];
现在,这里是不是这么漂亮的一部分:
- (void)observeValueForKeyPath: (NSString*) path
ofObject: (id)object
change: (NSDictionary*)change
context: (void*)context {
NSLog(@"SOME OBSERVER DID THIS: %@ , %@",object,change);
if ([self playerIsFullscreen]) {
for(UIWindow* tempWindow in [[UIApplication sharedApplication]windows]){
for(UIView* tempView in [tempWindow subviews]){
if ([[tempView description] rangeOfString:@"UIInputSetContainerView"].location != NSNotFound){
UIButton *testB = [[UIButton alloc] initWithFrame: CGRectMake(20, 20, 400, 400)];
testB.backgroundColor = [UIColor redColor];
[testB addTarget:self action:@selector(buttonTouch) forControlEvents:UIControlEventTouchDown];
[tempView addSubview:testB];
break;
}
}
}
}
}
我知道这是不是一个很好的方式做到这一点,但它是我设法补充说,还接收播放器上的触摸事件的一些自定义UI的唯一途径。
干杯!