133*_*ode 1 controls add objective-c subview mpmovieplayercontroller
我试过这个但是没有用,我在过去7个小时里一直在努力,请帮助我.我想在MPMoviePlayer的全屏视图中添加自定义按钮.
码:
moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.fullscreen = YES;
UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
CustomControlsViewController *overlay = (CustomControlsViewController*)[mainStoryBoard instantiateViewControllerWithIdentifier:@"Custom Controls"];
[moviePlayerController.view addSubview:overlay.view];
[moviePlayerController play];
Run Code Online (Sandbox Code Playgroud)
Til*_*ill 10
首先,永远不要在视图中添加任何子视图MPMoviePlayerController.将它们添加到其背景视图或其父级作为兄弟.
这在MPMoviePlayerController文档中讨论:
将电影播放器视图视为不透明结构.您可以将自己的自定义子视图添加到电影顶部的图层内容中,但绝不能修改任何现有子视图.除了在电影上分层内容之外,您还可以通过在backgroundView属性中向视图添加子视图来提供自定义背景内容.
第二,使用正确的全屏时,MPMoviePlayerController不会重复使用其普通视图,而是将其内容直接添加到UIWindow实例上.因此,在使用"正确"的全屏模式时,您只有以下选项; 找到当前的关键窗口,并在切换到全屏模式后直接添加控件.
这样的事情应该做:
//are we in fullscreen-mode?
if (player.fullscreen)
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (!window)
{
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
//we now got a proper window for use of our controls ...
//add them to the window instance!
}
Run Code Online (Sandbox Code Playgroud)
作为替代方案,只是不要使用"正确"的全屏,而是调整MPMovieViewController的视图以覆盖整个屏幕 - 我称之为"假"全屏.此选项的一大优点是您可以使用/捕获/覆盖正常的重定向.
| 归档时间: |
|
| 查看次数: |
4402 次 |
| 最近记录: |