我想在全屏播放时在我的视频播放器上添加一个按钮。我在我的视频播放器上创建了一个Overlay,它在iPhone上工作得很好。我试着在iPad上做同样的事情,但按钮永远不会出现。
这是我的代码:
NSArray *windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1){
UIWindow * moviePlayerWindow = [windows objectAtIndex:1];
NSArray * subviews = [moviePlayerWindow subviews];
UIView * videoView = [subviews objectAtIndex:0];
[videoView addSubview:myButton];
}
像ipad这样的接缝不会为全屏模式创建UIWindow。
任何人都知道如何做到这一点?
谢谢!
答案 0 :(得分:3)
几周前我找到了解决这个问题的方法:
似乎这种方法在iPad上不起作用(我还没有检查过iPhone SDK 4>)所以为了解决这个问题,你可以做到以下几点。
添加视频并设置为全屏后,您可以直接将控件添加到UIWindow(例如[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]),它们将显示在视频的顶部视频。
我发现的唯一问题是它们不遵守视图的方向规则,我手动必须在视图的willRotateToInterfaceOrientation方法中编写旋转代码。
答案 1 :(得分:2)
@tigermain的解决方案有效。
[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]
但添加到窗口的视图不遵循方向。
方向的解决方案是使用NSNotificationCenter,UIApplicationDidChangeStatusBarOrientationNotification。
// assign a notification
id center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(didRotate:)
name:UIApplicationDidChangeStatusBarOrientationNotification
object:nil];
// this method will get called when the orientation changes
-(void) didRotate:(NSNotification*)notification {
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
NSLog(@"%d", orientation);
// ... transform view accordingly to the enum 'UIInterfaceOrientationXXX'
}