我的VC以附有“将 stackView
与“对齐底部到安全区域”一起开始。
我有一个tabBar,但一开始是隐藏的 tabBar.isHidden = true
。
后来当tabBar出现时,它会隐藏 stackView
因此,我需要一个函数,在 tabBar.isHidden = false
之后刷新约束
当我用 tabBar.isHidden = false
启动应用程序时, stackView
会正确显示。
尝试了每个函数,例如:stackView.needsUpdateConstraints(),updateConstraints(),setNeedsUpdateConstraints()
都没有成功。
现在我正在通过编程方式更改底部,但是当我切换tabBarIndex并返回到那个具有更改底部约束的选项卡时,它会检测到tabBar并将stackView提升到另一个视图下面(该视图未附带约束)。 就像重新刷新约束一样。 我使用约束在屏幕上/屏幕外隐藏和显示此stackView。
我需要在 tabBar.isHidden = false
之后刷新约束,但约束不会检测到tabBar的出现。
正如我所提及的,在选项卡之间切换可解决此问题,因此一些代码在切换后执行以检测tabBar。 有人知道这个代码吗? 我尝试调用 viewDidLayoutSubviews
和 viewWillLayoutSubviews
方法都没有成功...有任何建议吗?
tabBar
是添加到视图中的对象吗?还是你的 VC 是UITabBarController
的一个选项卡,但是标签栏被隐藏了?或者,你的 VC 嵌入在导航控制器中,并将底部栏称为tabBar
? - DonMag