繁体   English   中英

如何设置子视图的框架

[英]How to set a subview's frame

我在UIViewController下有一个视图层次结构,该视图层次结构由一个主视图和该主视图的几个子视图组成,所有这些子视图都在情节提要中定义,并且都使用IBOutlet连接。

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

我试过在viewDidLoadviewWillAppear设置它们。 两种视图均无效,并且在调用时,主视图具有有效的帧值,但子视图均具有(0,0,0,0)的帧。

如果我什么也不做,则子视图将精确显示在情节提要上的位置。 我需要使以下代码工作,但我不知道将其放在哪里。

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

提出此问题的另一种方法:
情节提要子视图的框架在何时何处设置?
或者,我应该只使用代码创建所有子视图吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM