safeAreaInsets 未按预期更新
Posted
技术标签:
【中文标题】safeAreaInsets 未按预期更新【英文标题】:The safeAreaInsets is not updating as expected 【发布时间】:2021-11-22 11:35:17 【问题描述】:我有一个控制两个视图控制器的侧边菜单控制器。其中一个视图控制器隐藏了导航栏,以便它可以使用全屏。我添加了一个点击手势,以便能够切换到其他 VC。 safeAreaInsets 如预期的那样,除非我在应用程序后台运行。如果我在显示带有可见导航栏的 VC 时将应用程序置于后台,则一切正常,当我切换到另一个时,该栏被隐藏并且我看到全屏。但是,如果我在全屏 VC 显示时将应用程序置于后台,当我再次将应用程序置于前台并切换到另一个 VC 时,取消隐藏导航栏,safeAreaInsets 是错误的。这可以通过将应用程序置于后台并再次将其置于前台来“纠正”,因为 safeAreaInsets 再次正确。
有什么方法可以强制更新 safeAreaInsets 吗?
如果我
override func viewSafeAreaInsetsDidChange()
此方法在我后台应用时调用,而不是在导航栏隐藏或取消隐藏时调用。
【问题讨论】:
【参考方案1】:我找到了解决方案。在父视图控制器上,我在隐藏/取消隐藏导航栏时执行此操作:
view.setNeedsUpdateConstraints()
【讨论】:
以上是关于safeAreaInsets 未按预期更新的主要内容,如果未能解决你的问题,请参考以下文章