【问题标题】:The safeAreaInsets is not updating as expectedsafeAreaInsets 未按预期更新
【发布时间】:2021-11-22 11:35:17
【问题描述】:

我有一个控制两个视图控制器的侧边菜单控制器。其中一个视图控制器隐藏了导航栏,以便它可以使用全屏。我添加了一个点击手势,以便能够切换到其他 VC。 safeAreaInsets 如预期的那样,除非我在应用程序后台运行。如果我在显示带有可见导航栏的 VC 时将应用程序置于后台,则一切正常,当我切换到另一个时,该栏被隐藏并且我看到全屏。但是,如果我在全屏 VC 显示时将应用程序置于后台,当我再次将应用程序置于前台并切换到另一个 VC 时,取消隐藏导航栏,safeAreaInsets 是错误的。这可以通过将应用程序置于后台并再次将其置于前台来“纠正”,因为 safeAreaInsets 再次正确。

有什么方法可以强制更新 safeAreaInsets 吗?

如果我

override func viewSafeAreaInsetsDidChange()

此方法在我后台应用时调用,而不是在导航栏隐藏或取消隐藏时调用。

【问题讨论】:

    标签: swift uiviewcontroller background foreground


    【解决方案1】:

    我找到了解决方案。在父视图控制器上,我在隐藏/取消隐藏导航栏时执行此操作:

    view.setNeedsUpdateConstraints()
    

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 2018-03-03
      相关资源
      最近更新 更多