1

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

在此处输入图像描述

我正在使用:

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

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


我尝试在界面构建器面板中设置自动调整大小,但状态栏更改框架时没有任何变化。 在此处输入图像描述

在我的所有视图中是否有正确的方法来执行此操作,而无需为每个视图中的每个元素设置框架?

谢谢。

4

1 回答 1

0

使用- (void) application:(UIApplication*)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame不是执行此操作的好地方。

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

对于自动调整大小:例如,如果您想让所有标签相对于底部边框固定并具有固定高度:只需单击自动调整大小对话框中的底部间距并删除高度箭头。

于 2012-07-03T08:41:45.220 回答