UISplitViewController 在菜单弹出框可见的情况下旋转时缩小左侧
Posted
技术标签:
【中文标题】UISplitViewController 在菜单弹出框可见的情况下旋转时缩小左侧【英文标题】:UISplitViewController shrinks left side when rotating with Menu popover visible 【发布时间】:2011-07-08 15:51:02 【问题描述】:我以前从未见过这种情况,我无法弄清楚是什么原因造成的,也许你可以帮忙。我有一个 UISplitViewController 作为我的根视图控制器。左侧是一个带有表格视图控制器的 UINavigationController。我可以从肖像旋转到风景,然后一遍又一遍地旋转,没有任何问题。但是,如果我是纵向的并且我点击菜单按钮以显示包含左侧导航控制器的 UIPopoverController 并在菜单可见时旋转到横向,导航控制器的左侧视图变得更薄!左侧变薄了大约 30 像素,左侧和细节视图控制器之间出现了间隙。
我大吃一惊。有什么想法吗?
编辑:弹出菜单不需要在旋转过程中可见。它只需要在纵向显示时才会发生尺寸问题。我没有任何代码可以更改 UISplitViewController 委托方法中任何内容的大小。我只更新详细视图控制器中的工具栏以添加/删除菜单栏按钮项。我已经记录了左侧控制器在旋转之前/之后/期间以及在弹出窗口中显示之前/之后/期间的帧大小,它始终显示为 320 宽。
肯尼
【问题讨论】:
从未见过这个问题。 sim 还是设备?操作系统版本?相关代码? 仅在设备上发生(测试 4.2 和 4.3)。我想发布代码,但没有任何相关代码。我不会改变任何东西的大小或位置。 【参考方案1】:我找到了解决方案。我右侧的详细视图控制器有一个 UIImageView ,其中包含背景图像。背景图像对于纵向来说足够大,因此它比 UIImageView 在为横向视图调整大小时更大。它的内容模式设置为中心。出于某种原因,这是左侧视图尺寸减小的原因(即使左侧框架在任何时候都没有改变)。检查我的详细视图控制器的 xib 中的“剪辑子视图”复选框似乎已经解决了这个问题。
【讨论】:
嗯,这很有趣! %-) 很高兴您发布了解决方案,我整天都在为同样的问题苦苦挣扎!谢谢! 很棒的发现!顺便说一句,这个问题也可能出现在 ios >4.x 中。以上是关于UISplitViewController 在菜单弹出框可见的情况下旋转时缩小左侧的主要内容,如果未能解决你的问题,请参考以下文章
当 UISplitViewController 上的菜单滑动时,收缩细节视图控制器动画
UISplitViewController 弹出菜单填满屏幕,如何改变大小?
在 UISplitViewController 和其他视图控制器之间切换的最佳方式?
iOS-如何在 UISplitViewController 详细视图上方添加按钮