2012-02-07 44 views
2

我只想在外部显示器上显示全屏。在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)。但它不起作用。

在此先感谢

回答

6

改变这一行:

screen.overscanCompensation = UIScreenOverscanCompensationInsetBounds; 

screen.overscanCompensation = 3; 

这是一个无记录值...

+0

这个工作中的iOS 9,但没有按”不再像iOS 10 – tmm1 2016-10-25 16:24:25

+0

一样,尽管这是最好的解决方案,但我注意到使用这个3d的值不保证屏幕将被填满。有时是的,有时没有。很奇怪。 – horseshoe7 2017-10-03 13:08:05