通过自动布局推送时隐藏底栏

Hide Bottom Bar When Pushed through Autolayout

我有一个 UITabBarController,其中一个 UINavigationController 持有一个 UIViewController 作为根视图控制器。

当点击 UIViewController 中的其中一个按钮时,我会推送常规聊天 window UIViewController(使用 TableView + 输入视图)结束隐藏底部标签栏。 (使用 "Hide bottom bar when pushed" 标志)

在情节提要中,我向 VC 添加了一个常规 UIView 子类,它看起来像底部栏,我使用自动布局将其固定到 VC 视图的底部。

问题 当我按下 VC 时,这个视图需要一秒钟才能固定到底部,看起来自动布局将它固定到底部,就好像标签栏没有隐藏一样,一秒钟后它识别出标签栏是隐藏并将其移动到视图的真正底部。

要了解清楚的信息,请查看此屏幕截图

现在我将让您了解 table 视图的限制。

现在我展示了 InputView 的约束

我也在添加我的视图层次结构...

我在我的项目中遇到了类似的问题。我通过选择我想要固定在底部的视图(在你的例子中是输入视图)解决了这个问题,按住 Command,然后选择它的超级视图(现在应该突出显示两个视图)。

然后我选择了IB底部的对齐按钮:

并添加了 Bottom Edges 约束。

我最初所做的是使用固定菜单将视图固定到其父视图,但似乎默认情况下会将其固定到底部布局,这会导致在转换过程中出现奇怪的移动。

编辑:

看到最新的截图后,问题可能出在其中一个超级视图上。我假设 chatWindowUIView,而您的 Scroll View 只是水平的。以下是您应该检查的内容:

  1. chatWindow 固定在 scrollView 的底部,类似于我上面概述的内容。
  2. scrollView 已固定到其 superview,正如我在上面概述的那样。
  3. scrollView 之外的 inputView 移动到根超级视图。然后将其逐层向下移至当前位置。