iOS横屏模态VC dismiss后导航栏与状态栏重叠问题求助
问题成因解析
导航栏布局刷新滞后
从横屏模态视图控制器返回竖屏导航控制器时,系统先完成旋转动画,再触发导航栏的布局更新。但状态栏会先切换回竖屏位置,此时导航栏的frame还没及时调整,就出现了重叠。点击状态栏会触发系统内部的布局刷新逻辑,强制导航栏重新计算位置,所以能恢复正常。手动旋转控制与IB自动布局的适配缺失
你仅通过重写supportedInterfaceOrientations固定方向,没有同步处理导航控制器的旋转回调。IB创建的导航栏依赖系统自动布局约束适配方向变化,但手动控制旋转时,自动布局的更新流程未被正确触发,导致导航栏顶部约束没及时更新到竖屏状态栏下方。模态返回动画与布局更新时序不匹配
全屏模态返回的动画过程中,系统优先处理视图的位移、旋转动画,布局约束更新被推迟到动画结束后。但状态栏方向切换是同步完成的,这就导致导航栏顶部位置短时间内没跟上状态栏变化,出现重叠。
内容的提问来源于stack exchange,提问作者phvega
相关产品推荐
相关产品推荐

