UIView没有自动调整子视图

时间:2013-04-21 05:22:35

标签: objective-c cocoa-touch uiview

我有一个启用了a的UIView autoresizing subviews。它的大小是:

 <UIView: 0x7650180; frame = (0 0; 320 394); clipsToBounds = YES; autoresize = LM+RM+H; layer = <CALayer: 0x7650230>>

我有另一个UIView b,我将其添加到视图a中。视图b具有灵活的宽度/高度。当我添加它时,我希望它的高度更改为394,但它仍然与nib(420)中的相同:

<UIView: 0x764f720; frame = (0 0; 320 460); autoresize = LM+W+RM+TM+H+BM; layer = <CALayer: 0x764f320>>

我做错了什么?

由于

2 个答案:

答案 0 :(得分:4)

自动调整子视图仅适用于已添加到父视图的子视图。你应该怎么做:

  1. 创建父视图。
  2. 添加子视图。
  3. 为它们设置自动调整遮罩。
  4. 调整父视图的大小。
  5. 只有这样你才会看到子视图正在自动调整大小。

    调整大小后添加子视图将不起作用。

答案 1 :(得分:0)

自动调整仅在父视图的帧发生更改时影响子视图。如果您希望子视图与父视图具有相同的高度,则必须在将其添加为子视图之前或之后将高度设置为相等。