Сохраняйте размер UIWindow после установки значения UIScreen.

Я использую 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 указывает, что рамка окна теперь имеет размер 1024 x 768

Это iPad с сетчаткой. Я хочу, чтобы размер оставался сетчатым и, соответственно, установленным изображениям. Как только я добавляю изображения с качеством сетчатки, они (как и следовало ожидать) становятся слишком большими. Любые идеи, что вызывает это или что мне здесь не хватает?


person chillok    schedule 05.04.2013    source источник


Ответы (1)


Вы пытались прочитать размер кадра с экрана, который входит в ваш объект [объект уведомления]?

- (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];
person Ondrej Rafaj    schedule 11.06.2013