为什么layoutSubviews在设置框架时不会自动在视图上调用?

时间:2011-10-27 19:58:58

标签: iphone uiview frame resize autoresizingmask

我有一个观点。它是一个大型复杂项目的一部分。设置我的视图框架后,不会自动调用layoutSubviews。

玩弄这个,我尝试将以下方法放入我的视图中:

-(void) setFrame: (CGRect) frame {
    NSLog (@"setting frame");
    [super setFrame: frame];
    [self setNeedsLayout];
}

此时,正如预期的那样,在设置框架时重新布局。如果我注释掉setNeedsLayout行,则布局没有完成。此外,当我在调用super的行中单击“step into”时,调试器不会进入任何步骤。所以据我所知,super的setFrame方法没有被覆盖。

FWIW,我还做了一个小测试项目,我在其中更改了视图的框架。在这种情况下,当我这样做时,调用了layoutSubviews。 [setNeedsLayout未在我的测试项目中调用。]因此,我的大型项目中的某些内容正在改变行为。但我不知道那是什么。

任何人都可以解释可能发生的事情吗?

编辑:澄清一下,我的画面更改正在改变视图的高度。宽度没有改变。

0 个答案:

没有答案