添加子视图会在子视图和导航栏之间留下空隙

Posted

技术标签:

【中文标题】添加子视图会在子视图和导航栏之间留下空隙【英文标题】:Adding subview leaves gap between subview and navigation bar 【发布时间】:2012-09-07 01:43:23 【问题描述】:

我有一个故事板,其视图包装在一个导航控制器中,底部有一个 UI 选项卡栏。我动态地将子视图添加到这个视图中,但是导航栏和子视图之间总是有一个空行,看起来是状态栏的宽度。在情节提要上创建的每个子视图上,我将它们的模拟指标设置为底部栏作为选项卡栏,状态栏设置为无,顶部栏设置为导航栏。

下面是我添加子视图的代码:

    if(!self.homeViewController)
         self.homeViewController = [self.storyboardinstantiateViewControllerWithIdentifier:@"HomeView"];        
    

    if(self.currentViewController != self.homeViewController)
                
        [self.view insertSubview:self.homeViewController.view belowSubview:self.tabBar];
        [self.currentViewController removeFromParentViewController];
    

    self.currentViewController = self.homeViewController;

【问题讨论】:

你在哪里定义这些对象的框架? 好吧,我在情节提要中定义了所有视觉效果。 你有想过这个吗? 并非如此。我最终重做了我创建视图的方式。 【参考方案1】:

在 Storyboard 中定义的 homeViewController 上,将“Resize View From NIB”属性设置为 未勾选(默认勾选)。这解决了我的差距问题。

【讨论】:

以上是关于添加子视图会在子视图和导航栏之间留下空隙的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 swift 在子视图中添加标签栏和导航栏?

使用容器视图控制器,如何在子视图控制器之间添加交互式动画?

xib 中的自动布局 - 子视图的高度与导航栏和标签栏之间的空间成正比

隐藏 NavBar 但显示带背景的状态栏

在 Swift 3 中访问孩子时,父母的导航栏变亮

在导航控制器中添加子视图覆盖导航栏