使用Autolayout将三个对象居中

Mar*_*elo 5 objective-c ios autolayout

我有一个包含三个标签的视图.

第一个标签位于最顶部.第三个标签距离底部50px.

我想要做的是始终使用autolayout将第二个标签放在这两个标签的中心,但我无法想象如何做到这一点.

问题是第二个标签不在视图的中心.

我尝试将两个垂直间距约束设置为小于或等于初始值,但它不起作用.

只使用自动布局可以做到这一点吗?我想添加另一个视图,但这看起来不是一个好的解决方案..

谢谢.

fum*_*007 1

我认为你不能用自动布局来做到这一点;但重写layoutSubviews(或者viewDidLayoutSubviews如果您不使用UIView子类)将标签 2 置于标签 1 和标签 3 之间是很简单的(只需确保[super layoutSubviews]先调用即可)。

编辑:这是一些示例代码。

- (void)layoutSubviews {
    [super layoutSubviews];

    _label2.center = CGPointMake(_label2.center.x, (CGRectGetMaxY(_label1.frame) + CGRectGetMinY(_label3.frame)) / 2);
}
Run Code Online (Sandbox Code Playgroud)