请注意,我的回答是指MPMoviePlayerController
,而不是MPMoviePlayerViewController
。我建议您直接使用它或通过它在MPMoviePlayerViewController
.
首先,永远不要将任何东西直接添加到MPMoviePlayerController
的视图中。这很容易产生各种奇怪的副作用,并且在文档中明确建议不要这样做。而是使用它来托管您的自定义内容或'sbackgroundView
的父级(使其成为兄弟)。MPMoviePlayerController
view
但是话又说回来,如果用户点击或只是等待,那将无法解决您描述的问题,即让该视图/标签/任何显示/重新出现与控件一起出现。
有办法做到这一点,但我担心那些处于灰色地带 - 或者换句话说,有可能被苹果拒绝。事实上,它不仅仅是一个灰色地带,而且明显违反了 Apple 的开发指南。
只是,我过去曾在主要应用程序上使用过这个技巧,但从未被检测到/拒绝。
首先,您需要找到 MPMoviePlayerController 实例的界面视图。
/**
* This quirky hack tries to locate the interface view within the supposingly opaque MPMoviePlayerController
* view hierachy.
* @note This has a fat chance of breaking and/or getting rejected by Apple
*
* @return interface view reference or nil if none was found
*/
- (UIView *)interfaceView
{
for (UIView *views in [self.player.view subviews])
{
for (UIView *subViews in [views subviews])
{
for (UIView *controlView in [subViews subviews])
{
if ([controlView isKindOfClass:NSClassFromString(@"MPInlineVideoOverlay")])
{
return controlView;
}
}
}
}
return nil;
}
UIView *interfaceView = [self interfaceView];
现在您已经获得了实例,只需将您的视图/标签/任何内容添加到该视图中即可。
[interfaceView addSubview:myAwesomeCustomView];