Как сделать 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