谁能建议我如何获取包含“MPMoviePlayer”中所有按钮的视图?

如果您不知道,至少知道如何获取 MPMoviePlayer 的主视图/窗口。

更新: 我需要这样做来在控制器视图上添加一个按钮。它看起来像这样:示例http://img338.imageshack.us/img338/5184/poz.jpg

提前致谢!

有帮助吗?

解决方案

您不能将其直接添加到 MPMoviePlayerController 的视图中——这是一个私有视图,无法访问。如果要添加按钮,则需要在所有内容的顶部创建一个透明窗口,然后将按钮添加到其中。

苹果 电影播放器 示例展示了如何执行此操作。

其他提示

上面的答案实际上是错误的:该视图不是私有的,您可以向其中添加视图。你只需要潜入足够深的地方就能找到它。

例如,在 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 上会崩溃。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top