如何设置子视图的框架

时间:2013-01-11 21:18:37

标签: ios uiview storyboard

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

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

我已尝试在viewDidLoadviewWillAppear中设置它们。既不工作也不调用,主视图具有有效的帧值,但子视图都具有(0,0,0,0)的帧。

如果我什么都不做,则子视图会准确显示在故事板上的位置。我需要让下面的代码工作,但我不知道在哪里放。

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

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

2 个答案:

答案 0 :(得分:1)

使用自动布局时,您可以在viewDidLayoutSubviews方法中设置视图的帧(如果帧是从超级视图的帧计算的),或者我使用的另一种方法是调用此方法[view setTranslatesAutoresizingMaskIntoConstraints:YES];,然后调用[view setFrame:...];。希望这会有所帮助。

答案 1 :(得分:0)

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

相关问题