gpt4 book ai didi

ios - 强制更新 subview Controller 的 safeAreaInsets

转载 作者:可可西里 更新时间:2023-11-01 04:40:45 28 4
gpt4 key购买 nike

我有一个 rootViewController,它有一个 subview Controller (fullScreenViewController),其 View 不时显示在 View 上方 (但作为 subview )rootViewController,占据全屏。

rootViewController.addChildViewController( fullScreenViewController)rootViewController.view.addSubview( fullScreenViewController.view )

这个“全屏演示”是通过约束更新完成的,不是通过使用present()(这是有充分理由的)。

当我第一次初始化 fullScreenViewController 并将其添加为 rootViewController 的 subview Controller 时,然后更新约束以使其在屏幕上,safeAreaInsets 都设置正确。

但是,稍后,当我的 rootViewController 实际上执行 present() 模态 VC,并且该 VC 被 dismiss() 编辑,fullScreenViewController 上的safeAreaInsets 不再正确,fullScreenViewController 中的内容向上滑动到状态栏顶部。

如何强制正确重新计算 fullScreenViewController 上的 safeAreaInsets,以便它们在设置后与 rootViewController 匹配?

根据文档,rootViewController 应该在其所有 childViewController 上正确设置 safeAreaInsets,但事实似乎并非如此。

Safe Area Insets Correct

Safe Area Insets Incorrect

最佳答案

在演示文稿更改安全区域后, subview Controller 的 safeAreaInsets 没有正确刷新,我遇到了完全相同的问题。

我发现通过使 subview 成为父 View 的直接 subview ,问题得到了解决,而之前它是 subview 的 subview 。我想当子 VC 的 View 是父 View 的直接 subview 时,UIKit 代码会更快乐。

如果您可以将您的 View 层次结构重构到此配置(如果不是这样的话),这可能会做到。

关于ios - 强制更新 subview Controller 的 safeAreaInsets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51214544/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com