【问题标题】:Display one thing on iPad and another on Apple Tv?在 iPad 上显示一件事,在 Apple Tv 上显示另一件事?
【发布时间】:2013-07-11 21:12:16
【问题描述】:

我有一个应用创意,但不确定是否可行。

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

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

如果有一些“概念证明”示例代码,我很乐意看看。 非常感谢。 克里斯

【问题讨论】:

标签: ios ipad apple-tv


【解决方案1】:

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

根据博文Creating a Dual-Screen AirPlay Experience for iOS and Apple TV 中的信息,您不需要做太多事情。

基本上你需要检查UIScreen 中的screens 属性。还有一些通知您应该收听(UIScreenDidConnectNotificationUIScreenDidDisconnectNotification),以便您了解应用运行时屏幕数量是否发生变化。

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

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

其中_secondWinUIWindow ivar。

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多