Ios 使用自动布局使三个对象居中

Ios 使用自动布局使三个对象居中,ios,objective-c,autolayout,Ios,Objective C,Autolayout,我有一个包含三个标签的视图 第一个标签放在最上面。 第三个标签位于距离底部50像素的位置 我想做的是总是使用autolayout将第二个标签放在这两个标签的中心,但我不知道如何做 问题是第二个标签不在视图的中心 我尝试将两个垂直间距约束设置为小于或等于初始值,但不起作用 只有使用“自动布局”才能做到这一点? 我曾考虑添加另一个视图,但这似乎不是一个好的解决方案 多谢各位 我认为用自动布局无法做到这一点;但是覆盖layoutSubviews(或者viewdlayoutsubviews,如果您没有使

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

第一个标签放在最上面。 第三个标签位于距离底部50像素的位置

我想做的是总是使用autolayout将第二个标签放在这两个标签的中心,但我不知道如何做

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

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

只有使用“自动布局”才能做到这一点? 我曾考虑添加另一个视图,但这似乎不是一个好的解决方案


多谢各位

我认为用自动布局无法做到这一点;但是覆盖
layoutSubviews
(或者
viewdlayoutsubviews
,如果您没有使用
UIView
子类),将标签2居中放置在标签1和标签3之间(只需确保先调用
[super layoutSubviews]

编辑:下面是一些示例代码

- (void)layoutSubviews {
    [super layoutSubviews];

    _label2.center = CGPointMake(_label2.center.x, (CGRectGetMaxY(_label1.frame) + CGRectGetMinY(_label3.frame)) / 2);
}

我认为我的另一个答案是不正确的。我认为最简单的方法是创建一个保存标签的
NSView
,第二个标签设置在它的中心。我之前的回答假设,当Autolayout系统需要在视图之间分割空间时,它会平等地这样做,但一些快速测试表明它不会

我认为不可能用Autolayout说某个空间现在应该等于另一个空间