正确的方法来自动调整所有视图对象

时间:2012-07-03 08:08:34

标签: iphone objective-c ipad uiview autosize

出现呼叫状态栏(状态栏高度变化)时,自动调整大小或自动调整所有视图组件的正确方法是什么?

enter image description here

我正在使用:

- (void) application:(UIApplication*)application 
                           didChangeStatusBarFrame:(CGRect)oldStatusBarFrame { }

但是这样我需要手动设置所有元素的框架。我认为这不是最好的方式。


我尝试在界面构建器面板中设置自动调整大小,但状态栏更改框架时没有任何更改。 enter image description here

在我的所有视图中是否有正确的方法可以在没有设置框架的情况下对每个视图中的每个元素执行此操作?

感谢。

1 个答案:

答案 0 :(得分:0)

使用- (void) application:(UIApplication*)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame不是一个好的地方。

解决方案取决于您所需的布局。如果它足够简单,自动调整掩码将正常工作。对于更复杂的布局,您可能希望子类化UIView并将其用作子视图的容器。然后,您可以覆盖layoutSubviews以根据视图的边界执行正确的布局(容器被自动调整)。

用于自动调整:例如如果要将所有标签相对于底部边框固定并具有固定高度:只需单击自动调整对话框中的底部间距并移除高度箭头。