具有纵向/横向视图的 UITabBarController

Posted

技术标签:

【中文标题】具有纵向/横向视图的 UITabBarController【英文标题】:UITabBarController with portrait / landscape views 【发布时间】:2010-08-18 14:13:23 【问题描述】:

我有一个 UITabBarController 的子类,我正在使用它,这样我也可以旋转以在横向中使用我的应用程序。

我将如何旋转我的 UI 并让每个视图控制器使用横向视图 xib?

我一直只是在为 shouldAutorotate 返回 YES 之前编写应用程序...自动为我处理...现在情况并非如此,因为我使用的是自定义视图。

谢谢。

【问题讨论】:

【参考方案1】:

您不需要继承 UITabBarController 来获得自动旋转行为。相反,您应该做的是让所有出现在您的 UITabBarController 中的 UIViewController 为 shouldAutorotateToInterfaceOrientation: 返回 YES。如果其中一个没有,UITabBarController 将不会自动旋转。

至于自定义视图,它与一个 UIViewController 相关联,对吧?如果是这样,那么如果您的自定义视图使用当前视图边界实现 layoutSubviews 来布置所有子视图,那么它也应该正确地自动旋转。

【讨论】:

我尝试将所有视图设置为返回 YES,但它似乎没有影响自动旋转...什么是 layoutSubviews? 澄清一下,您是否将视图设置为返回 YES,或者它们的视图控制器?不会询问视图,只有视图控制器会。 我将视图控制器设置为返回 YES。我将如何使用 layoutSubviews 来布置子视图,使用 xib?谢谢

以上是关于具有纵向/横向视图的 UITabBarController的主要内容,如果未能解决你的问题,请参考以下文章

具有横向和纵向的故事板设计

视图控制器处于横向模式,但我从纵向模式获取框架?

如何使约束适用于横向和纵向(xcode 8.1 / swift3 / storyboard)

只有在将方向更改为横向并返回纵向后,纵向布局才能正确显示

Google Nexus 纵向在键盘上更改为横向

自定义横向/纵向视图