0

我正在使用 AirPlay,iPad 的主要内容被传送到 AppleTV 上。

当我想要 iPad 上的信息与 AppleTV 上的不同时,我遇到了分辨率问题。

我实例化 UIWindow:

_atvWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 2048, 1536)];

NSLog 表示窗口是我想要的帧大小

我将 UIWindow 设置为 iPad 屏幕

_atvWindow.screen = [[UIScreen screens] objectAtIndex:0];

NSLog 指示窗口框架现在是 1024x768

这是一个视网膜 iPad。我希望尺寸保持视网膜并相应地设置图像。一旦我添加了视网膜质量的图像,它们(如您所料)就太大了。任何想法是什么导致了这个或我在这里缺少什么?

4

1 回答 1

0

您是否尝试从 [通知对象] 对象中的屏幕读取帧大小?

- (void)handleConnectedScreen:(UIScreen *)screen withViewController:(UIViewController *)controller {
    if(!_airPlayWindow)
    {
        CGRect frame = screen.bounds;
        _airPlayWindow = [[UIWindow alloc] initWithFrame:frame];
        _airPlayWindow.backgroundColor = [UIColor clearColor];
        [_airPlayWindow setScreen:screen];
        _airPlayWindow.hidden = NO;
    }

    UIViewController *oldController = _airPlayWindow.rootViewController;
    [_airPlayWindow setRootViewController:controller];
    [oldController removeFromParentViewController];
}


- (void)screenDidConnect:(NSNotification *)notification {
    ABOutputViewController *c = [[ABOutputViewController alloc] init];
    [self handleConnectedScreen:[notification object] withViewController:c];
}


[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect:) name:UIScreenDidConnectNotification object:nil];
于 2013-06-11T16:58:34.260 回答