2011-07-11 140 views
5

让我解释一下当我说我也想旋转我的子视图时我的意思。我放置了很多图片让自己清楚。这可能看起来很多,但事实并非如此。只是想澄清。当设备旋转时,使子视图也旋转iPhone/iPad

在我目前正在使用的nib文件中,我有一个UIView和按钮。

enter image description here

,我在Interface Builder创建的UIView与IBOutlet中名为ViewMain连接:

enter image description here

和按钮,执行下面的方法: enter image description here

什么该方法的作用是它将来自另一个nib文件的视图放入我在interface builde中创建的UIView控制器中河那我其实把笔尖文件是:

enter image description here

我只是随意放置控件来更好地说明我的观点。

所以一切到目前为止是伟大的(从anotherViewController视图显示了对ViewMain当用户按下按钮)

enter image description here

enter image description here

一切看起来都很好,但注意时会发生什么我在旋转我的设备:

enter image description here

我希望我的子视图(anotherViewController.view)也可以调用。我不介意它比ViewMain更大,因为我可以拥有透明背景。我只需要旋转它。我怎样才能做到这一点?

+0

你想让它旋转吗?或者您是否希望视图将其尺寸更改为与新尺寸相匹配? –

+0

以匹配外部/根视图的尺寸......旋转没有任何子视图的UIView时会发生同样的情况。我希望它具有白色背景的uiview。并调整它可能是一个解决方案。虽然我不知道该怎么做 –

+1

这不是旋转的原因是因为它的viewController不在视图控制器层次结构中,所以没有得到轮换通知。它包含在wwdc会话102或104中,如果您有权访问视频(http://developer.apple.com/videos/wwdc/2011/) – MCannon

回答

3

在你UIViewController定义shouldAutorotateToInterfaceOrientation:所以它总是返回YES:了解更多详情

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

here

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

编辑:

设置在界面生成器视图中的自动调整大小属性,选择视图,然后转到“视图大小”窗格中的信息窗口,并设置“自动调整大小”,如下图所示。

enter image description here

+0

该方法默认存在并且仍然不旋转...此外,该方法是在我所有的.m文件。也许我必须从按钮执行代码时从根视图调用该方法。 –

+0

你可以添加一张你想获得的布局的图片吗? – sergio

+0

我还不知道,因为我打算根据用户按下的按钮添加几个视图。但是你说的最后一件事听起来像是一个好主意。也许我只是不得不重新调整大小到根uiview的尺寸,这是我发布sergio的最后一张图片上有白色的尺寸... –