我有一个视图控制器和用于纵向和横向的单独 nib 文件。在旋转时,我加载相应的笔尖。方法
shouldAutorotateToInterfaceOrientation and willRotateToInterfaceOrientation
被调用并且笔尖确实改变了。
问题:
the landscape nib does not appear as landscape, but portrait! The status bar is
correctly rotated and appears on the top:
(Sorry, couldn't paste the image, because my account is new. The screenshot is in
landscape, with a landscape status bar, but a landscape view shown as portrait.)
有人会认为问题在于没有将方向设置为 IB Simulated 视图中的横向指标,但我已经这样做了,并且视图在 IB 中显示为横向。(如果视图是纵向的,我认为甚至不可能创建这样的旋转按钮。)除了这两个 nib 之外,我还有一个mainwindow.xib,其中包含应用程序委托、窗口和视图控制器对象。
编辑:我意识到视图实际上是在旋转,当它们应该“保持不变”时。就像有一个额外的转变。当我将手机向右旋转 90° 时,横向 xib 显示为向右旋转 90°。当我将手机再向右旋转 90° 时,纵向 xib 会倒置显示。状态栏始终正确显示在顶部。
EDIT2:使用
self.view.transform = CGAffineTransformMakeRotation((M_PI * (90) / 180.0));
在 willRotateToInterfaceOrientation 中,我可以将视图旋转到左侧横向(以及我想要的任何方向),因此我可以将其用作解决方法。但是,我有其他项目,其中视图自动旋转并且不需要使用 CGAffineTransformMakeRotation。好像有什么东西阻止了这里的自动旋转。