0

我试图弄清楚如何使用自动布局使视图垂直居中。我是这项技术的新手,所以它给我带来了一些问题......这是我在 Interface Builder 中的控制器: 在此处输入图像描述

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

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

4

2 回答 2

2

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

- (void)viewDidLoad {
    [super viewDidLoad];
    self.centerCon.constant = 100;
}
于 2013-09-01T16:03:18.197 回答
-3

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

redView.center = CGPointMake(superview.width/2, (superview.height - yellowView.height)/2);
于 2013-09-01T15:34:00.270 回答