Iphone UIView自动调整大小有时会起作用

Iphone UIView自动调整大小有时会起作用,iphone,objective-c,ios,Iphone,Objective C,Ios,现在,这里是正在发生的事情。如果我在纵向模式,我提出了一个新的modalViewController,然后旋转到横向,自动调整大小的工程完美,一切看起来都很棒。然而,如果我在景观,我提出了一个新的modalViewController,自动调整大小不起作用,一切看起来都很时髦。有人能想出任何可能的想法来解释为什么会发生这种情况吗?我绝望了,我什么都试过了 也许解决这个问题的一种方法是,当我在纵向和横向时,找出系统调用的代码。如果我的modalView出现在《风景》中,也许我可以称之为精确的代码。

现在,这里是正在发生的事情。如果我在纵向模式,我提出了一个新的modalViewController,然后旋转到横向,自动调整大小的工程完美,一切看起来都很棒。然而,如果我在景观,我提出了一个新的modalViewController,自动调整大小不起作用,一切看起来都很时髦。有人能想出任何可能的想法来解释为什么会发生这种情况吗?我绝望了,我什么都试过了

也许解决这个问题的一种方法是,当我在纵向和横向时,找出系统调用的代码。如果我的modalView出现在《风景》中,也许我可以称之为精确的代码。我尝试过LayoutFneed和setNeedsDisplay,但他们什么也不做。我也尝试过将contentMode设置为redraw,但没有帮助

我的视图中有这个,模态视图的加载

if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
{
    NSLog(@"is landscape, width:%f", self.view.frame.size.width);
}

这将输出320,即使我在横向,但它应该是480。

UIViewAutoResizingMasks就是我们所说的“struts”和“springs”。考虑一下:你有一个大的方形,里面有一个小的正方形。为了使该正方形保持完全居中,必须从大正方形的每个内侧边缘设置固定宽度,以便对其进行约束。这些是支柱

另一方面,弹簧在旋转期间的工作方式更像UIView。假设我们的视图必须保持在屏幕的底部,在中间对齐。我们希望它的顶部弹簧保持灵活,这样当视图从460像素旋转到320像素时,它相对于屏幕现在改变的尺寸保持相同的位置


记住这一点,当视图加载为纵向(所有UIViewController都是这样)但实际方向为横向时,视图可能会“混乱”,并保持一种混乱的混合方向类型视图。如果你必须(我不能强调这是最后的手段)事先强制改变方向,使用iOS 5.x的+attemptRotationToDeviceOrientarion

更多的是一个概念性问题。我不知道我可以发布什么代码,这真的很有帮助。然后你应该有一个概念性的答案。底线问题归结为:当模式视图加载到纵向视图,然后旋转到横向视图时,为什么自动调整大小有效,但当模式视图加载到横向视图时,屏幕截图会有所帮助。“funky”是什么意思?不完全是funky,只是不应该是。按钮仍然认为它们处于纵向模式,而视图层阴影仍然认为其宽度为320。但是,当我手动旋转到横向时不会发生这种情况,只有在横向加载视图时才会发生这种情况。。