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 であることを示します

Retina 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 に答える