Показать полный экран на внешнем дисплее для iOS - PullRequest
2 голосов
/ 07 февраля 2012

Я просто хочу показать полный экран на внешнем дисплее.

Я использую код, подобный следующему:

- (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) в верхнем левом углу экрана.Но это не работает.

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 17 ноября 2012

Измените эту строку:

screen.overscanCompensation = UIScreenOverscanCompensationInsetBounds;

на

screen.overscanCompensation = 3;

Это недокументированное значение ...

0 голосов
/ 28 июня 2019

Для меня следующий код решил проблему (XCode 4, iOS 12.1)

screen.overscanCompensation = .scale

Перед добавлением этой строки у меня была проблема, что черная рамка была вокруг экрана.

...