8

我有一个应用程序的想法,但我不确定它是否可能。

我想知道我是否能够在 iPad(或 iPhone)屏幕上显示一件事,同时在 Apple Tv 上显示完全不同的东西。例如,一个测验应用程序,问题显示在 Apple Tv 上,多个选项列在 iPad 上供用户选择。

我不确定这是否可行,或者您是否只能将 iPad 屏幕镜像到 Apple Tv 上。

如果有一些“概念证明”示例代码,我很想看看。太感谢了。克里斯

4

1 回答 1

15

事实证明,支持两个屏幕非常简单:iOS 设备的主屏幕和辅助屏幕(外部显示器或 Apple TV 上的镜像)。

根据博客文章为 iOS 和 Apple TV 创建双屏 AirPlay 体验中的信息,您不需要做太多事情。

基本上你需要screensUIScreen. 还有一些你应该监听的通知 (UIScreenDidConnectNotificationUIScreenDidDisconnectNotification),这样你就知道在你的应用程序运行时屏幕数量是否发生了变化。

有了第二个屏幕后,您需要为其创建一个新窗口。可以使用如下代码:

if ([UIScreen screens].count > 1) {
    if (!_secondWin) {
        UIScreen *screen = [UIScreen screens][1];
        _secondWin = [[UIWindow alloc] initWithFrame:screen.bounds];
        _secondWin.screen = screen;
    }
}

_secondWin伊瓦尔在哪里UIWindow

设置窗口后,创建一个视图控制器,使其成为窗口的根视图控制器,并显示窗口:

SomeViewController *vc = [[SomeViewController alloc] init...];
_secondWin.rootViewController = vc;
_secondWin.hidden = NO;

除了正确处理通知之外,这几乎就是它。请记住,您无法在第二个显示器上获得任何触摸事件,因此请确保您显示的任何内容基本上都是仅显示的。

根据您的应用程序,您可能会在应用程序的整个生命周期中使用第二个屏幕/窗口(只要第二个屏幕以任何方式可用)。或者您可能只在某些情况下创建和使用第二个窗口/屏幕。当您不设置第二个窗口/屏幕时,您的应用程序将简单地镜像到第二个显示器或 Apple TV。

最后一点是打开镜像到 Apple TV。这是在 iOS 设备上完成的,而不是在应用程序中。

我链接的博客文章有更多细节值得回顾。

于 2013-07-12T02:45:30.300 回答