Показать полный экран на внешнем дисплее для iOS
Я просто хочу показать полный экран на внешнем дисплее.
Я использую такой код:
- (void) startTvOut {
NSArray *screens = [UIScreen screens];
CGSize max;
max.width = 0;
max.height = 0;
UIScreenMode *maxScreenMode = nil;
for (UIScreen *screen in screens)
{
if (screen != [UIScreen mainScreen])
{
for(int i = 0; i < [[screen availableModes] count]; i++)
{
UIScreenMode *current = [[screen availableModes] objectAtIndex: i];
if (current.size.width > max.width)
{
max = current.size;
maxScreenMode = current;
}
}
if (exWindow == nil)
{
exWindow = [[HUWindow alloc] initWithFrame:screen.brounds];
exWindow.backgroundColor = [UIColor whiteColor];
}
screen.overscanCompensation = UIScreenOverscanCompensationInsetBounds;
screen.currentMode = screen.preferredMode;
exWindow.screen = screen;
[exWindow makeKeyAndVisible];
m_isStarted = YES;
}
}
}
Невозможно отобразить полный экран на внешнем устройстве.
После того, как я изменил код с screen.overscanCompensation = UIScreenOverscanCompensationInsetBounds;
в screen.overscanCompensation = UIScreenOverscanCompensationInsetApplicationFrame;
он может показывать полный экран, но точка (0,0) не находится вверху левого экрана.
Моя цель - показать экран в полноэкранном режиме и иметь точку (0, 0) в верхнем левом углу экрана. Но это не работает.
заранее спасибо
1 ответ
Измените эту строку:
screen.overscanCompensation = UIScreenOverscanCompensationInsetBounds;
в
screen.overscanCompensation = 3;
Это недокументированное значение...
Для меня следующий код решил проблему (XCode 4, iOS 12.1)
screen.overscanCompensation = .scale
Перед добавлением этой строки у меня была проблема, что вокруг экрана была черная рамка.