我设置了所有子视图,以便它们基于self.view
。
EG:UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,(self.view.frame.size.width-20),(self.view.frame.size.height-90))];
然而,当视图旋转(shouldRotateToDeviceOrientation
或其他)时,视图都保持相同的大小。如何让它们改变形状以适应?我可以自动执行此操作吗?
由于
答案 0 :(得分:2)
绝对。看看autoresizingMask
属性。如果您设置图像视图(在这种情况下)具有UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
的自动调整遮罩,那么当其父视图调整大小时(因为它可能会或可能不会在您的应用程序旋转时自动执行 - 您可能必须设置类似在父视图上autoresizingMask
,它将保留您为其设置的外部边距。
答案 1 :(得分:1)
如果你在父视图的底部有一个视图,这应该会有所帮助:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
自我是您的孩子视图,应该调整大小。如果你没有设置UIViewAutoresizingFlexibleTopMargin
,那么在水平模式下,如果它在垂直模式下位于底部,你将看不到你的视图。
另外不要忘记设置:
self.autoresizesSubviews = YES;
并在视图中自动调整所有子视图的模式。因此,当调整大小时,其中的所有内容也会调整大小。
答案 2 :(得分:0)
你必须[view setAutoresizingMask:...]