iphone:在 mpMoviePlayerController 顶部保留视图

Posted

技术标签:

【中文标题】iphone:在 mpMoviePlayerController 顶部保留视图【英文标题】:iphone: Preserve view on top of mpMoviePlayerController 【发布时间】:2011-03-29 21:57:02 【问题描述】:

我有一个 mpMoviePlayerController,我在它上面有子视图。当用户点击 mpMoviePlayerController 的全屏按钮时,子视图消失,只有当我回到原始大小时才会出现。有没有办法保留子视图?有没有办法获得“缩放”电影播放器​​的参考?

【问题讨论】:

AFAIK 无法在两种模式(嵌入式和全屏)下将子视图保持在播放器的顶部。但是,您可以按照我的回答在两种模式下添加该子视图。 【参考方案1】:

快速草稿:

像这样捕获 MPMoviePlayerWillEnterFullscreenNotification:

[[NSNotificationCenter 默认中心] 添加观察者:自我 选择器:@选择器(MPMoviePlayerDidEnterFullscreen:) 名称:MPMoviePlayerDidEnterFullscreenNotification 对象:无];

在 MPMoviePlayerDidEnterFullscreen 中,将该子视图添加到当前 keyWindow 中,如下所示:

[[[UIApplication sharedApplication] 键窗口] addSubview:mySpecialSubview]

【讨论】:

这在 4.2 上对我不起作用。每次我输入通知方法时,都不会显示子视图。然后,当我尝试获取 windows NSArray *windows = [[UIApplication sharedApplication] windows]; 数组时windows 数组有 1 个对象(据我所知应该大于 1) Alex1987,让我向你保证,它在所有 ios 版本中都运行良好 - 我确实实现了它并在许多应用程序中使用它。您关于多个窗口的观点不再正确(如果我没记错的话,从 iOS 3.2 开始)。 这只对我第一次进入全屏模式有效。如果我切换回嵌入式,然后再切换回全屏,则视图不再存在。有什么想法吗? myell0w,您确定在重新进入全屏模式时也会触发通知 - 也许您过早地从该通知中取消注册? 是的,通知被触发。我列出了 didEnterFullscreen,我还在那里记录了窗口,并且在第一次全屏和其他时间之间的窗口层次结构中没有任何变化,但我只在第一次全屏时看到我的自定义视图。在 iOS 4.3 模拟器/设备和 iOS 5 模拟器/设备上的行为相同。

以上是关于iphone:在 mpMoviePlayerController 顶部保留视图的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone 5 和 iphone 6 中动态设置字体大小

iPhone:如何在 iPhone 中实现崩溃报告功能?

在横向屏幕上旋转不是 iPhone 5 和 iPhone 6 上的视图

在 iPhone 上安装 iPhone 应用程序

仅在 iphone 11 上显示 UI 图像在其他 iphone 版本上隐藏

如何在 iphone5 和 iphone6 上更改 UIImageView 的大小?