迫使UIVIew为当前的设备方向做好准备

时间:2012-04-10 01:13:07

标签: iphone ios cocoa-touch

我已经做了好几天了,不能破解它。事件的顺序是:

  • 在横向(让我们说对了),用户点击“编辑”按钮。
  • 仅限纵向模式界面滑入。其shouldAutorotateToInterfaceOrientation仅为纵向返回yes。
  • 设备确信它处于纵向模式。
  • 问题1:如果用户在未实际旋转到纵向模式的情况下取消界面,则设备会报告处于横向右方向(即它),但界面以纵向方式布局。
  • 问题2:如果用户旋转为纵向,则界面不会再次布局。
  • 问题3 :(而且这个很奇怪)旋转回到按下编辑按钮的相同横向(右)会导致状态栏返回到横向,但没有其他任何更改。我的所有东西仍然以纵向模式布局。旋转到另一个(左)横向方向非常完美。

我需要一些方法来强制布局引擎重新设置设备实际位置的布局。

UIView - layoutSubviews, - setNeedsLayout和-layoutIfNeeded没有任何效果。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

执行iBooks(2.x)所做的操作并强制界面方向为纵向 + (void)attemptRotationToDeviceOrientation。通过这种方式,您可以在第一步中解决问题。