我正在尝试为视图制作子视图并使其尺寸更小,但子视图不会调整大小。我想知道我是否遗漏了什么。 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];
但是看不到子视图高度的变化。有什么想法吗?
答案 0 :(得分:0)
如果您正在使用“viewDidLoad”方法,则可以安全地假设您正在nib文件中初始化此视图。如果对此视图有任何约束,实际上它们可以在 viewDidLoad方法之后应用于视图,因为在“viewWillAppear”之前视图的最终大小未完全确定方法
长话短说,请尝试将框架更改移动到“viewWillAppear:animated:”方法。
答案 1 :(得分:0)
您的子视图上是否设置了autoresizingMask?
_testSubView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin;
检查您父视图上是否设置了autoresizesSubviews。
_testView.autoresizesSubviews = YES;
我认为你也应该看一下autolayout。
此致