这里有很多混淆和一组相应的问题,以及如何实现适当处理横向/纵向模式自动旋转的iPhone应用程序.当期望以横向模式开始时,实现这种应用尤其困难.最常见的观察效果是扰乱的布局和屏幕上不再识别触摸的区域.
对标记的问题进行简单搜索iphone并landscape揭示在某些情况下发生的这些问题:
仅横向显示具有多个笔尖的iPhone应用程序:应用程序以横向模式启动,第一个笔尖的视图呈现正常,从不同笔尖加载的所有视图都无法正确显示.
Iphone横向模式在加载新控制器时切换到Portraite模式:自解释
iPhone:仅在横向上,在第一个addSubview之后,UITableViewController无法正常旋转:与上面相同的问题.
iPhone仅限横向实用程序 - 模板应用程序:布局错误,控制器似乎无法识别视图应该旋转但在横向模式下显示剪切的纵向视图,导致屏幕的一半保持空白.
在纵向viewController之后的landscape中的presentModalViewController:模式视图也未正确呈现.
已经提出了一组不同的解决方案,其中一些包括通过CoreGraphics完全自定义动画,而其他解决方案则建立在从主笔尖加载的第一个视图控制器始终显示正确的观察的基础上.
我花了大量时间研究这个问题,最后找到了一个解决方案,它不仅是一个部分解决方案,而且应该在所有这些情况下都能正常工作.我打算在这篇CW帖子中为其他在横向模式下遇到UIViewControllers问题的人提供常见问题解答.
请提供反馈,并通过纳入任何相关的观察结果来帮助提高本职位的质量.如果您知道,可以随意编辑和发布其他/更好的答案.
我有一个带有子视图控制器的视图控制器.
tab bar controller
|
|
nav controller
|
|
UIPageViewController (should rotate)
|
|
A (Video Player) (shouldn't rotate)
|
|
B (Controls overlay) (should rotate)
Run Code Online (Sandbox Code Playgroud)
应该强制A始终保持纵向,但应允许B自由旋转.
我知道shouldAutorotate适用于任何视图控制器及其子级,但有没有办法解决这个问题?好像我可以使用shouldAutorotateToInterfaceOrientation,但这在iOS 8中被阻止了.
我想保持视频播放器静态(因此水平视频始终是水平的,无论设备方向如何),而控制层子视图覆盖允许自由旋转.
我正在使用Swift.
Twitter应用程序是iPhone上的标签栏应用程序.任何选项卡中的任何内容都不会旋转,但是,当您单击推文中的链接时,允许旋转顶部的视图控制器.我曾经唯一的旋转是倾斜设备,风景或肖像,但我不明白如何使用2D变换和动画来旋转视图.
如何使用UIView的子类旋转任何视图?