谁能建议我如何从“MPMoviePlayer”获取包含所有按钮的视图?
如果您不知道,至少您如何获得 MPMoviePlayer 的主视图/窗口。
更新:我需要这样做才能在控制器视图上添加一个按钮。它看起来像这样: 示例 http://img338.imageshack.us/img338/5184/poz.jpg
提前致谢!
谁能建议我如何从“MPMoviePlayer”获取包含所有按钮的视图?
如果您不知道,至少您如何获得 MPMoviePlayer 的主视图/窗口。
更新:我需要这样做才能在控制器视图上添加一个按钮。它看起来像这样: 示例 http://img338.imageshack.us/img338/5184/poz.jpg
提前致谢!
您不能将它直接添加到 MPMoviePlayerController 的视图中——这是一个私有视图,无法访问。如果要添加按钮,则需要在所有内容的顶部创建一个透明窗口并将按钮添加到其中。
Apple 的MoviePlayer示例展示了如何执行此操作。
上面的答案其实是不正确的:视图不是私有的,你可以给它添加视图。你只需要潜得足够深就能找到它。
例如,在 iOS 5.1 中,您可以尝试如下操作:
UIView *fullscreenOverlayView = [[[[[[[mpPlayer view] subviews] objectAtIndex:0] subviews] objectAtIndex:0] subviews] objectAtIndex:2];
[fullscreenOverlayView addSubview:ccButton];
这将在视图中添加一个 CC 按钮,如果您为 CC 按钮的框架指定了正确的值,它将将该按钮插入控制面板,并通过触摸控制面板隐藏/显示它。仅供参考:这是我使用的框架:
BOOL isPortrait = UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation);
// all of these values are just based on measurement on screen
// to make sure that the CC button "seems" to be part of the player's control panel
if (isPortrait)
{
return CGRectMake(222, 880, 40, 40);
}
else {
return CGRectMake(350, 625, 40, 40);
}
注意:[mpPlayer view] 的子视图集对于不同的 iOS 版本是不同的,因此仅将其视为一种解决方法。不能保证这将在 iOS 6 上运行,并且会在 iOS 4.3 上崩溃。