【发布时间】:2023-04-03 15:43:01
【问题描述】:
iOS 8 中的导航和状态栏有问题。状态栏与导航栏重叠。这不是一个新问题,但我的情况更具体。
我在我的应用程序中使用 RESideMenu,当我使用导航控制器作为内容视图时,问题就出现了。我看到了十几种改变视图或屏幕框架的解决方案。这样的解决方案似乎并不正确,因为应用程序在进入后台并返回前台后正在将其导航栏更改为正确的大小和位置。我想知道是什么导致了这种行为。
我查看了各种框架和尺寸,以检查切换后哪些参数发生了变化。
这些参数在 switch 之前:
View frame: (0.0,0.0,320.0,568.0)
View bounds: (0.0,0.0,320.0,568.0)
View margins: top: 0.0, left: 0.0, bottom: 0.0, right: 0.0
VC Preferred size: (0.0,0.0)
NavBar rect: (0.0,0.0,320.0,44.0)
NavBar bounds: (0.0,0.0,320.0,44.0)
NavBar margins: top: 0.0, left: 16.0, bottom: 0.0, right: 16.0
切换后:
View frame: (0.0,0.0,320.0,568.0)
View bounds: (0.0,0.0,320.0,568.0)
View margins: top: 0.0, left: 16.0, bottom: 0.0, right: 16.0
VC Preferred size: (0.0,0.0)
NavBar rect: (0.0,20.0,320.0,44.0)
NavBar bounds: (0.0,0.0,320.0,44.0)
NavBar margins: top: 0.0, left: 16.0, bottom: 0.0, right: 16.0
如您所见,NavBar rect 已将其 Y 位置从 0.0 更改为 20.0。如果我在初始化点强制使用这些参数,那将无济于事。 (它移动了导航栏,但不是正确的方式,在应用程序切换之后会更加混乱)。有趣的事实是,应用切换后 View 的边距发生了变化。为什么它会改变那些左右值呢?
这是我的截图:
切换前:
http://postimg.org/image/ddqlcm5xl/
切换后:
http://postimg.org/image/q4exx9zql/
我尝试在代码和 Info.plist 中手动隐藏或显示状态栏。也没有用。
我希望导航栏和状态栏看起来像第二个屏幕截图,而无需来回切换应用程序。
有什么想法吗?
【问题讨论】:
-
在这里查看我的答案stackoverflow.com/a/28233203/3013693 我希望对您有所帮助...
标签: objective-c swift ios8 statusbar navigationbar