【问题标题】:UIWindow is appearing in Portrait in a Landscape only appUIWindow 在仅横向应用程序中出现在纵向
【发布时间】:2015-01-13 17:14:52
【问题描述】:
- (UIWindow *)overlayWindow {
    if (!_overlayWindow) {
        _overlayWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        [_overlayWindow makeKeyAndVisible];
        _overlayWindow.backgroundColor = [UIColor redColor];
        _overlayWindow.userInteractionEnabled = NO;
        _overlayWindow.frame = [UIScreen mainScreen].bounds;

        [_overlayWindow addSubview:self.dimmer];

    }
    return _overlayWindow;
}

帧是正确的 - 0、0、1024、768。

该应用仅支持横向,如 info.plist 所确认(支持的界面方向 (iPad) 为横向左侧和横向右侧)。

但是,新窗口在 iPad 上出现在 0,0 处,就好像它是纵向的,并且与应用程序的其余部分成 90 度角。

窗口如下所示:

[self.overlayWindow setWindowLevel:UIWindowLevelStatusBar+1];
self.overlayWindow.alpha = 1;
self.overlayWindow.userInteractionEnabled = YES;

我做错了什么?我只是想创建一个新窗口并将其显示在应用程序的其余部分上,并使其像应用程序的主窗口一样定向。

【问题讨论】:

  • Ru 计划在主窗口顶部添加窗口或视图控制器
  • 窗口是通过makeKeyAndVisible自动添加的吧?

标签: ios ipad uiinterfaceorientation uiwindow


【解决方案1】:

试试这样:

- (UIWindow *)overlayWindow {
    if (!_overlayWindow) {
         _overlayWindow = [[UIWindow new];
         [_overlayWindow makeKeyAndVisible];
         _overlayWindow.backgroundColor = [UIColor redColor];
         _overlayWindow.userInteractionEnabled = NO;
         _overlayWindow.frame = [UIScreen mainScreen].bounds;
         [_overlayWindow addSubview:self.dimmer];
    }

    return _overlayWindow;
}

【讨论】:

  • 您能否添加一点解释,说明究竟有什么不同以及为什么会有所帮助?
猜你喜欢
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 2012-09-26
  • 2014-09-10
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
相关资源
最近更新 更多