UIView没有调整大小,是否有我失踪的财产?

时间:2013-07-03 22:57:04

标签: ios user-interface

我正在尝试为视图制作子视图并使其尺寸更小,但子视图不会调整大小。我想知道我是否遗漏了什么。 View Controller的'viewDidLoad'代码如下:

[_testView setBackgroundColor:[UIColor greenColor]];

CGRect frame = self.testView.frame;
frame.size.height -= 500;
// self.testView.frame = frame;
[_testView addSubview:_testSubView];

[_testSubView setFrame:frame];

但是看不到子视图高度的变化。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您正在使用“viewDidLoad”方法,则可以安全地假设您正在nib文件中初始化此视图。如果对此视图有任何约束,实际上它们可以在 viewDidLoad方法之后应用于视图,因为在“viewWillAppear”之前视图的最终大小未完全确定方法

长话短说,请尝试将框架更改移动到“viewWillAppear:animated:”方法。

答案 1 :(得分:0)

您的子视图上是否设置了autoresizingMask?

_testSubView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin;

检查您父视图上是否设置了autoresizesSubviews。

_testView.autoresizesSubviews = YES;

我认为你也应该看一下autolayout。

此致