代码之家  ›  专栏  ›  技术社区  ›  Moritz

tabBar减小嵌套ViewController中视图的大小

  •  0
  • Moritz  · 技术社区  · 7 年前

    我有一个 UIViewController ( VC UIPageViewController 在一个 UINavigationController UITabBarController ( UIViewController < UIPageViewController < UINavigationController < UITabBarController ).

    UIImageView 应作为子视图添加到 view 由于其他一些原因,我希望用户 tabBar 使用动画消失( navigationController?.setNavigationBarHidden(true, animated: animated) 在我的 隐藏导航栏)。隐藏 塔巴

    当我用动画来隐藏酒吧我注意到 看法 被选项卡栏的高度切断。我很好奇吧台上方是什么景色,我在玩那个游戏 backgroundColors 导航控制器 UIPageViewController 并设法发现这是 导航控制器 . 在我以前的项目中 edgesForExtendedLayout = [] 它实现了我现在的愿望。我试过在单个控制器中使用它,也试过同时在多个控制器中使用它。到目前为止什么都没用。

    viewDidLayoutSubviews (比预期的要小)我设法用 viewWillLayoutSubviews ( print UIScreen.main.bounds.height ). 尽管如此,它是不可见的,因此可能(显然)被 导航控制器 .

    编辑: 也试过设置 view.frame VC.view PageVC.view

    1 回复  |  直到 7 年前
        1
  •  0
  •   Moritz    7 年前

    老实说,我没有像第一条评论中建议的那样尝试将它设置为半透明,因为我真的想让它保持不透明。我确实做到了,虽然方式不那么优雅。所以我的问题的解决方法是:

    VC UIViewController < UIPageViewController < UINavigationController < UITabBarController edgesForExtendedLayout = [] 在每一种情况下,即使是组合,但都不起作用。然而,在一个旧项目中,我添加了一个 PageVC 以及 NavVC UIViewController < AdditionalUIViewController < UIPageViewController < UINavigationController < UITabBarController . 设置 edgesForExtendedLayout=[] 在这个额外的控制器固定它。

    我很高兴问题解决了。然而,我仍然不明白为什么会出现这个问题。如果有人有主意,我很高兴听到!