当用户改变设备方向时,如何只旋转导航栏而不旋转视图?

Posted

技术标签:

【中文标题】当用户改变设备方向时,如何只旋转导航栏而不旋转视图?【英文标题】:When the user changes device orientation, how to rotate only the navigation bar and not the view? 【发布时间】:2012-02-18 15:04:36 【问题描述】:

所以,基本上我有一个顶部带有导航栏的 ViewController。

说,为了示例,我的 ViewController 的视图是数字 8 中的图片。我可以做什么当设备旋转时,导航栏也旋转并停留在顶部,但 8 正是和以前一样,让它现在看起来像无穷大符号? (由于设备已旋转但图片未旋转,因此 8 现在正在“放下”)。

谢谢

编辑: 好的,知道了。

必须实现 willRotateToInterfaceOrientation,在方向改变之前将视图旋转 90 度,还必须调整视图的边界

【问题讨论】:

能不能不让视图正常旋转,反方向旋转图像? 【参考方案1】:

你试过这样做吗?

RootViewController:你在哪里分配了你的导航控制器。允许在此处旋转设备(应该自动旋转到界面方向 - 是)

但是在 childViewController: 你不想让改变方向的地方。也有实现同样的方法,返回NO。

我不确定它是否会起作用。但这只是一个建议。

【讨论】:

我没有以编程方式分配我的导航栏,我只是将它从情节提要中拖出来..【参考方案2】:

您可以先查看 UIViewControllers willRotateToInterfaceOrientation:duration:

您可以在视图控制器旋转之前调用操作,例如设置不同的视图框架

【讨论】:

以上是关于当用户改变设备方向时,如何只旋转导航栏而不旋转视图?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 中更新导航栏而不更改视图

在视图控制器之间切换时自动旋转

当视图从纵向更改为横向时,方向不会改变

iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件

当设备旋转而不将设备锁定为纵向模式时,如何将 collectionView 的所有项目保持在适当的位置?

横向旋转后推送方向变化