我在UIViewController
下有一个视图层次结构,它包含主视图和主视图的几个子视图,所有子视图都在故事板中定义,并且全部使用IBOutlet连接。
我想设置相对于主视图的子视图的位置和大小。
我已尝试在viewDidLoad
和viewWillAppear
中设置它们。既不工作也不调用,主视图具有有效的帧值,但子视图都具有(0,0,0,0)的帧。
如果我什么都不做,则子视图会准确显示在故事板上的位置。我需要让下面的代码工作,但我不知道在哪里放。
CGRect newFrame = CGRectMake(10,10,50,50);
[subView setFrame:newFrame];
提出这个问题的另一种方式:
故事板子视图的框架何时何地设置?
或者,我应该用代码创建所有子视图吗?
答案 0 :(得分:1)
使用自动布局时,您可以在viewDidLayoutSubviews方法中设置视图的帧(如果帧是从超级视图的帧计算的),或者我使用的另一种方法是调用此方法[view setTranslatesAutoresizingMaskIntoConstraints:YES];
,然后调用[view setFrame:...];
。希望这会有所帮助。
答案 1 :(得分:0)
当UIViewController调用viewDidAppear但是会导致演示文稿跳转时,可以设置子视图的位置和大小。在viewDid / WillLayoutSubviews中设置UITableView的位置和大小不起作用。