这真的很奇怪,我不确定到底发生了什么。
我的 iPad 应用程序上有一个 UISplitViewController。我可以一遍又一遍地从纵向旋转到横向,并且完全按预期工作。但是,如果我处于纵向并且我点击按钮以显示包含 UISplitViewController 左侧的弹出框,然后在可见时旋转,则当旋转完成时,左侧表格现在被推送向下在它和导航栏之间留下一个黑色的间隙。
到底是什么原因造成的?
我已经注释掉了我的-willRotateToInterfaceOrientation:duration
和-didRotateFromInterfaceOrientation:
方法,问题仍然存在,所以它不是由我的轮换代码引起的。(该代码只是明确地取消了该弹出窗口)。
在导致问题的旋转之后,我递归地打印出左侧的视图层次结构以及帧大小:
UILayoutContainerView ({{0, 0}, {320, 748}})
UINavigationBar ({{0, 0}, {320, 44}})
UILayoutContainerView ({{0, 37}, {320, 711}})
UINavigationTransitionView ({{0, 0}, {320, 711}})
UIViewControllerWrapperView ({{0, 44}, {320, 667}})
UIView ({{0, 0}, {320, 667}})
UITableView ({{0, 0}, {320, 667}})
它显示导航栏高 44 像素,包含我的左侧视图控制器的视图容器从 0,44 开始,我的表格视图从 0,0 开始,但更短....我不明白为什么无法正确显示。
这是横向方向的外观。在左侧,您会看到表格部分标题“您想知道什么?” 它位于导航栏的正下方,带有“切换到计算器”按钮。
当我切换到纵向并点击“你想知道什么?” 按钮,弹出框显示其中包含带有 UITableViewController 的左侧导航控制器。
现在,当我旋转回横向时,导航栏和 UITableView 之间会出现黑色间隙。