iPhone强行旋转

Rob*_*ner 5 iphone

我一直在阅读旋转,但没有找到我的查询的解决方案.开始:

我有一个肖像应用程序,在我的选项卡中有一个标签栏和隐藏的导航控制器.在应用程序中的某个点上,下一个视图必须是横向视图.

XIB布局是在横向上完成的,所以我想调出xib而不需要任何平移或像素移动代码.(不认为这是必需的)我试过只是推动视图(保持纵向),使用各种方法移动视图(似乎没有正确排队).

有没有办法告诉观点它在开放前已经为景观布局了?

提前致谢!

Rob*_*ner 7

找到它,这段代码完成了viewdidload中的技巧:

self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0);
Run Code Online (Sandbox Code Playgroud)

还有一件奇怪的事情.无论我如何将导航栏设置为隐藏,它都不会旋转,并保持在视图的左侧.

[[self navigationController] setNavigationBarHidden:YES animated:NO];
Run Code Online (Sandbox Code Playgroud)

有没有人种下这种行为并解决了?


CJ.*_*CJ. 3

我确信你不能“强制”轮换。系统决定何时改变设备的方向;因此“方向”属性本质上是只读的。很久以前,当我想确保特定视图始终以一个方向显示时,我研究了同样的问题。

因此,大多数应用程序允许其所有视图和视图控制器在应用程序支持的任何方向上工作。我发现尝试限制某些视图和视图控制器的行为最终会带来更多麻烦,并且在视图和视图控制器之间转换时可能会导致问题。

您发布的代码将适用于您的视图。实际上,您根本没有改变方向;而是在改变方向。您的视图的行为就像通过以旋转方式绘制而旋转一样。我不确定你是否可以对导航栏做同样的事情,但值得一试。如果您能够控制导航栏的视图属性(它也是 UIView),则应用与自定义视图相同的模式应该可以工作。

大多数只希望视图处于横向状态的应用程序最终会强制其整个应用程序处于横向状态。例如,飞行控制仅支持一种方向。因此,绘图代码非常简单;无论方向如何,只需绘制视图并将其旋转到它支持的一个方向(左横向或右横向)。

您的应用程序的设计不会那么容易......听起来您不是在设计全屏应用程序。您将不得不担心导航栏和状态栏是否正确绘制。