2010-09-23 52 views
2

我已将所有子视图设置为基于self.view在设备轮换上自动调整子视图的大小

EG:UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,(self.view.frame.size.width-20),(self.view.frame.size.height-90))];

然而当视图旋转(shouldRotateToDeviceOrientation或其他)的意见都保持相同的尺寸。我怎样才能让他们改变形状以适应?我可以自动执行此操作吗?

感谢

回答

2

绝对。看看autoresizingMask属性。如果您在这种情况下设置了图像视图,那么要有一个自动调整大小为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight的掩码,那么当其父视图调整大小时(因为它可能会或可能不会在您的应用旋转时自动执行) - 您可能必须在父级上设置类似的autoresizingMask视图),它将保持您为其设置的外部边距。

0

你必须[view setAutoresizingMask:...]

1

万一你在父视图底部的视图这应该帮助:

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 

自哪里是你的孩子认为,应该调整。如果您没有设置UIViewAutoresizingFlexibleTopMargin,那么在水平模式下,如果它处于垂直模式的底部,则不会看到您的视图。

也不要忘记设置:

self.autoresizesSubviews = YES; 

而自动尺寸模式,适合在您的视图中的所有子视图。所以当它被调整大小时,它里面的所有东西都会被调整大小。

相关问题