当iPhone/iPad设备旋转时,如何使子视图也旋转?

5
让我解释一下当我说我也想旋转我的子视图时,我的意思是什么。我放了很多图片来使自己清晰明了。这可能看起来太多了,但实际上并不是。只是想讲得更清楚。
在我目前正在工作的nib文件中,我有一个UIView和一个按钮。
我在接口构建器中创建的UIView与名为ViewMain的IBOutlet相连接:
按钮执行以下方法: 该方法的作用是将来自另一个nib文件的视图放置在我在接口构建器中创建的UIView控制器中。我实际放置的nib文件是:
我只是随机放置了一些控件,以更好地说明我的观点。
到目前为止一切都很好(当用户按下按钮时,来自anotherViewController的视图显示在ViewMain上)
当我旋转设备时,请注意会发生什么。
我希望我的子视图(anotherViewController.view)也能旋转。如果它比ViewMain大,我不介意,因为我可以有一个透明的背景。我只需要旋转它。我该怎么做?

你想让它旋转吗?还是你想让视图改变尺寸以匹配新的大小? - Alex Wayne
调整以匹配外部/根视图的尺寸...当您旋转没有任何子视图的UIView时,会发生相同的事情。我希望它的行为像具有白色背景的uiview一样。调整大小可能是一个解决方案。但我不知道如何做... - Tono Nam
1
这个不旋转的原因是因为它的视图控制器不在视图控制器层次结构中,因此无法接收旋转通知。如果您可以访问视频(http://developer.apple.com/videos/wwdc/2011/),则在wwdc会话102或104中有相关介绍。 - MCannon
1个回答

3

请在您的 UIViewController 中定义 shouldAutorotateToInterfaceOrientation:,以使其始终返回 YES:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
 {
    return YES;
 }

点击这里了解更多细节。

您还需要小心地正确定义视图和子视图的自动调整大小行为,以便在自动旋转时一切都正常。

编辑:

要在接口生成器中为视图设置自动调整大小属性,请选择该视图,然后转到信息窗口中的“视图大小”窗格,并如下图设置“自适应大小”。

enter image description here


那个方法默认就在里面,但它仍然不会旋转...而且那个方法在我所有的.m文件中都有。也许我必须在从按钮执行代码时从根视图调用该方法。 - Tono Nam
你能否添加一张布局图,以便我们了解您想要的效果? - sergio
我还不确定,因为我计划根据用户按下的按钮添加几个视图。但是你刚才说的最后一件事听起来很棒。也许我只需要将它调整到根UI视图的尺寸,就是我之前发布的那张带有白色的图片的那个sergio... - Tono Nam
你可以通过将view.frame设置为适合你的CGRect来调整视图大小。但是更好的方法是在IB中设置视图的自动调整属性...请查看我的编辑答案... - sergio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接