1

我在 a 下有一个视图层次结构,UIViewController它由一个主视图和几个主视图的子视图组成,全部在故事板中定义,并且全部使用 IBOutlet 连接。

我想设置子视图相对于主视图的位置和大小。

我已经尝试将它们设置为viewDidLoadand viewWillAppear。两者都不起作用,并且在调用时,主视图具有有效的帧值,但子视图都具有 (0,0,0,0) 的帧。

如果我什么都不做,子视图会出现在故事​​板上的确切位置。我需要使下面的代码工作,但我不知道把它放在哪里。

CGRect newFrame = CGRectMake(10,10,50,50);
[subView setFrame:newFrame];

提出这个问题的另一种方式:
故事板子视图的框架在何时何地设置?
或者,我应该只用代码创建所有子视图吗?

4

2 回答 2

1

when using autolayout you can set frame of the views (if the frame is calculated from super view's frame) in viewDidLayoutSubviews method or the other way I use is calling this method [view setTranslatesAutoresizingMaskIntoConstraints:YES]; and then [view setFrame:...];. Hope this helps.

于 2015-01-23T07:13:08.937 回答
0

当 UIViewController 调用 viewDidAppear 时可以设置子视图的位置和大小,但这会导致演示文稿跳转。在 viewDid/WillLayoutSubviews 中设置 UITableView 的位置和大小不起作用。

于 2013-01-14T04:24:53.097 回答