我有一个视图控制器和单独的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模拟指标的视图,但我已经这样做,并且视图在IB中显示为风景. (我不认为如果视图是人像,甚至不可能创建一个像这样的旋转按钮).除了这两个笔尖之外,我还有一个mainwindow.xib,它包含应用程序委托,窗口和视图控制器对象.
编辑:我意识到这些意见实际上是旋转的,当他们“坚持”时.这就像有一个额外的转变.当我将手机旋转90度时,风景xib显示向右旋转90°.当我将手机向右旋转90°时,肖像xib被倒置显示.状态栏总是正确显示在顶部.
编辑2:使用
self.view.transform = CGAffineTransformMakeRotation((M_PI * (90) / 180.0));
在willRotatetoInterfaceOrientation我可以将视图旋转到左侧(和任何方向我想要),所以我可以使用它作为一种解决方法.但是,我有其他项目,视图自动旋转,不需要使用CGAffineTransformMakeRotation.这就像是阻止自动旋转的东西.
解决方法
是否将从nib加载的视图添加为subView?如果只有状态栏正在旋转,这意味着您释放视图并添加新视图时挂起之前的视图.可以告诉您如何将从xib加载的视图添加到SuperView.
确保您在加载其他视图时正确释放以前的视图,将NSLOG放在视图的dealloc中,并检查视图是否完全释放.