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

时间:2013-09-01 15:23:29

标签: iphone ios interface-builder constraints autolayout

我正试图弄清楚如何使用自动布局垂直居中。 我是这项技术的新手,所以它让我有些问题...... 这是我在Interface Builder中的控制器: enter image description here

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

我的目标是将我的红色视图垂直居中于灰色视图的可见部分,其可见高度为superview.height - yellowView.height。 我怎么能这样做?
非常感谢你!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-3)

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

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