是否无法约束标签的基线以匹配另一个视图的底边?

时间:2014-12-01 22:59:29

标签: ios uilabel autolayout nslayoutconstraint

我有一个自定义的仪表视图。还有一个标签,显示仪表绘制的数值。使用AutoLayout约束,我想将标签的baseline与视图的bottom对齐。

当我 ctrl 在两者之间拖动并选择对齐底部,然后尝试使用Size Inspector进行调整时,它不会给我选择基线对于标签(仅TopBottomCenter Y)。

是否无法约束标签的基线以匹配Storyboard Editor中另一个视图的下边缘?

我可以直接使用代码吗?那个例子会是什么样的?

2 个答案:

答案 0 :(得分:1)

我确定故事板编辑器似乎并不想直接这样做。您可以使用以下方式以编程方式执行此操作:

NSLayoutConstraint *constraint = [NSLayoutConstraint
    constraintWithItem: self.myView
    attribute: NSLayoutAttributeBottom
    relatedBy: NSLayoutRelationEqual
    toItem: self.myLabel
    attribute: NSLayoutAttributeBaseline
    multiplier: 1
    constant: 0];
[self.myView.superview addConstraint: constraint];

为了让故事板体验愉快,我使用了从下到下的约束并检查了Placeholder remove at build time选项。

遗憾的是secondAttribute的{​​{1}}属性是只读的。否则,您可以创建故事板约束的出口,并在NSLayoutConstraint时调整它。

答案 1 :(得分:0)

使用以下代码    让约束= NSLayoutConstraint(item:myLabel,                                                 属性:.bottom,                                                 relatedBy:关系,                                                 toItem:myView,                                                 属性:.bottom,                                                 乘数:1                                                 常数:常数)     myLabel.addConstraint(constraint)