【问题标题】:the old display shifts-down-after-modal-view-controller issue旧显示器在模态视图控制器后向下移动问题
【发布时间】:2010-01-30 03:32:57
【问题描述】:

我检查了其他答案,但没有找到任何能真正描述我的情况的东西。就这样吧。

我有一个基于窗口的应用程序,它从 xib 创建和加载 UIViewController。它禁用了状态栏,高度为 480,UISegmentedControl 的 y 原点为 451。它很好地显示在屏幕底部。*

在 UIViewController 的 viewDidLoad 中,我创建了一个 UIView initWithFrame:CGRectMake(0.0, 0.0, 320.0, 431.0)];(UISegmentedControl 为 480 - 29 像素,状态栏为 20。)我使用[self.view addSubview:gameBoard]; 将其添加到 UIViewController。然后添加一些 UIView 游戏片段作为游戏板 UIView 的子视图,一切都按照我认为应该的方式显示。

当点击其中一些 UIView 子视图时,应该会出现一个菜单。我创建了一个带有所需控件的 UIViewController。我使用委托方法从接收触发事件的子视图调用到根 UIViewController - 它确实

self.squadOrders = [[SquadOrders alloc] initWithNibName:@"SquadOrders" bundle:nil];
    squadOrders.viewControllerDelegate = self;
    [self presentModalViewController:squadOrders animated:YES];

模态对话框按我想的那样显示,从屏幕的下边缘向上滑动,不覆盖状态栏,而是覆盖根 UIViewController 底部提到的 UISegmentedControl。它被解雇了

[self dismissModalViewControllerAnimated:YES];

这就是麻烦的开始。 UISegmented 控件向下移动了 20 个像素,因此只有 9 个像素在屏幕底部可见。 视图被向下移动的顶部有一个 20 像素的白色间隙。

*在此或任何其他 xib 上启用状态栏根本不会改变所描述的行为。

其他相关的stackoverflow问题是:

IPhone - After dismissing Modal View Controller - gap is left at top of page - 但给定的解决方案是没有加载另一个视图控制器作为显示模式的视图控制器的子视图 - 但我没有,只有 UIViews。也有建议在modal消失后重新设置合适的frame,但感觉像是作弊。

Contents of UIScrollView shifted after dismissing ModalViewController - 我已经玩过所有视图和控制器的高度 - 确信它们匹配,没有帮助。同样,可以重置框架,但它只能解决症状。

还有其他的,但到目前为止还没有解决这个问题。

【问题讨论】:

  • 在模态显示之前查看 self.view.frame,它是 0,0,320,480。当模态被解除时,它变为 0,20,320,460。希望对您有所帮助。
  • 我不敢相信没有解决办法。

标签: iphone cocoa-touch iphone-sdk-3.0 uikit


【解决方案1】:

我刚刚通过视图向下移动解决了这个问题。 这是因为 navigationBar.barStyle 设置为 UIBarStyleBlackTranslucent

【讨论】:

    【解决方案2】:

    这是一个 hack,但可能会对某人有所帮助。我在整个应用程序中遇到了很多这样的 20 像素间隙问题,并且通过使用导航控制器作为我的根视图控制器,它们都消失了。我根本不把它用作导航控制器(而且我隐藏了导航栏),所以这个解决方案可以在大多数应用程序中使用。

    基本上,我有一个 BaseView(320 x 480,无状态栏),其控制器位于我的导航控制器中,然后我的应用程序的其余部分作为子视图添加到 BaseView。现在一切都很好。

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多