繁体   English   中英

使用自动布局垂直居中子视图

[英]Vertically center subview using Auto-Layout

我试图弄清楚如何使用自动版式将视图垂直居中。 我是这项技术的新手,因此使我有些问题...这是我在Interface Builder中的控制器: 在此处输入图片说明

灰色部分是超级视图,它包含一个自定义视图(黄色)和一个标签(红色); 黄色视图固定在超级视图的底部,并且具有固定的高度和宽度。 红色视图也具有固定的宽度和高度。

我的目标是使红色视图在灰色视图的可见部分中垂直居中,其可见高度为superview.height - yellowView.height 我怎样才能做到这一点?
非常感谢!

最简单的方法是将灰色视图也作为主视图的子视图,然后可以在IB或代码中给标签赋予centerY约束。 如果由于某种原因不能这样做,则可以在代码中更改centerY约束的常量值,使其值为黄色视图高度的1/2。 在IB中为标签指定centerY约束,并为其创建IBOutlet(在我的示例中将其命名为centerCon)。 我的黄视图的固定高度为200。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.centerCon.constant = 100;
}

这里最简单的解决方案之一将是这样的:

redView.center = CGPointMake(superview.width/2, (superview.height - yellowView.height)/2);

暂无
暂无

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

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