Как сделать 16:9 PDF, чтобы соответствовать размеру экрана в VFR /Reader на втором экране 16:9 эфир с iPad 4:3

Я хотел бы отобразить на экране AirPlay тот же контент, что и на главном экране, как это делается по умолчанию при подключении устройства к AirPlay в приложении. Это нормально работать естественно.

Но мой второй экран - 16:9, а мой iPad - 4:3, и я использую vfr/Reader, а PDF, который я читаю, - в формате 16:9. То, что я хочу достичь, похоже на PowerPoint, когда вы запускаете.pptx в режиме слайд-шоу. он показывает только PPTX в 16:9 на втором экране.

Я попробовал вот что: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/UsingExternalDisplay/UsingExternalDisplay.html

Чего я могу добиться, так это иметь второй экран большей ширины с красным фоном:

   if (_secondWindow)
    {
        NSLog(@"INIT SECOND WINDOW");
        _secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
        _secondWindow.backgroundColor = [UIColor redColor];

        _secondWindow.screen = newScreen;
        _secondWindow.hidden = NO;

        //change size to 200 200 
        //_secondWindow.frame = CGRectMake(0, 0, 200,200);

        // Set the initial UI for the window.

    }

Что мне нужно, это сказать что-то вроде: взять содержимое моей основной текущей вдовы и скопировать его в _secondWindow с другим размером больше.

Когда я делаю это:

_secondWindow = [[[UIApplication sharedApplication] delegate] window];

У меня есть содержимое mainWindow на втором экране, но размер не меняется. Мне нужно только изменить размер зеркального экрана, масштабировать содержимое на зеркальном экране. и синхронизировать их

Есть ли способ добиться этого? В каком-то посте я вижу, что невозможно иметь один и тот же экземпляр для двух экранов. Может быть, есть лучший способ, чем использовать vfr/Reader, например, иметь ридер в двух webView или что-то еще? Или максимум, который можно сделать в этой ситуации, - это только воспроизвести текущий pdf как png (но сохранить высокое качество разрешения) на втором экране?

Но как это работает, когда у вас есть видео в вашем приложении, вам нужно обрабатывать каждый случай?

1 ответ

Вам нужно создать совершенно новый дисплей, используя:

- (void)handleScreenDidDisconnectNotification:(NSNotification*)aNotification

а также

- (void)handleScreenDidConnectNotification:(NSNotification*)aNotification

Затем, когда вы получили этот экран, вы можете использовать полное разрешение.

Чтобы использовать полный экран и высоту второго экрана (без границ), вам необходимо:

secondScreen.overscanCompensation=UIScreenOverscanCompensationNone;

Где 'secondScreen' - это AirPlay: (UIScreen).

Заметьте, что UIScreenOverscanCompensationNone был введен в IOS 9, установка значения overscanCompensation в 3 также работает со старыми версиями IOS, однако проблемы совместимости мне неизвестны, так как я ориентируюсь только на IOS 9 или новее.

/ Anders

Другие вопросы по тегам