0

我正在尝试为视图制作一个子视图并使其尺寸更小,但是,子视图没有调整大小。我想知道我是否遗漏了什么。视图控制器的 'viewDidLoad' 代码是这样的:

[_testView setBackgroundColor:[UIColor greenColor]];

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

[_testSubView setFrame:frame];

但是没有看到子视图高度的变化。任何想法为什么?

4

2 回答 2

0

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

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

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

_testView.autoresizesSubviews = YES;

我认为你也应该看看自动布局。

问候,

于 2013-08-24T17:15:33.360 回答
0

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

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

于 2013-07-04T00:17:08.770 回答