当菜单弹出框可见时,UISplitViewController旋转时左侧会缩小。

5
我从未见过这种情况,也无法确定原因,希望你能提供帮助。我的根视图控制器是UISplitViewController。左侧是一个带有表视图控制器的UINavigationController。我可以在横屏和竖屏之间反复旋转而不会出现任何问题。但是,如果我处于竖屏状态并点击菜单按钮以显示包含左侧导航控制器的UIPopoverController,并在菜单可见时旋转到横屏,那么左侧视图中的导航控制器会变窄!左侧会变窄约30个像素,并且左侧和详细视图控制器之间会出现间隙。
我很困惑,你有什么想法吗?
编辑:弹出菜单在旋转期间无需可见。只需要在竖屏模式下显示即可发生大小调整问题。我的UISplitViewController委托方法中没有更改任何内容大小的代码。我只更新详细视图控制器中的工具栏,添加/删除菜单栏按钮项。我已记录了旋转前/中/后和显示在弹出窗口中前/中/后的左侧控制器的框架大小,它始终显示为320宽。
Kenny

从未见过这个问题。是模拟器还是设备?操作系统版本?相关代码? - bshirley
仅在设备上发生(已测试4.2和4.3)。我想发布代码,但实际上没有任何相关的代码。我没有改变任何东西的大小或位置。 - Kenny Wyland
1个回答

3
我找到了一个解决方案。在右侧的详细视图控制器中,有一个包含背景图像的UIImageView。背景图片足够大以适应竖屏方向,所以当它被调整大小以适应横屏视图时,它比UIImageView更大。它的内容模式设置为居中。由于某种原因,这是左侧视图大小减小的原因(尽管左侧框架在任何时候都没有改变)。在我的详细视图控制器的xib中勾选“剪裁子视图”复选框似乎解决了这个问题。

好的,那是一个有趣的任务!%-) - bshirley
我很高兴你发布了解决方案,我一整天都在为同样的问题苦苦挣扎!谢谢! - ams
太好了!顺便说一下,这个问题在iOS >4.x中也可能出现。 - Wayne Hartman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接