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

vpfxa7rd  于 2023-06-25  发布在  iOS
关注(0)|答案(2)|浏览(116)

我有一个自定义的 Jmeter 视图。和一个标签,显示由 Jmeter 绘制的数值。使用AutoLayout约束,我希望将标签的baseline与视图的bottom对齐。
当我在两者之间进行ctrl拖动并选择对齐底部,然后尝试使用Size Inspector来调整它时,它不会给予我标签的基线选项(只有TopBottomCenter Y)。
是否没有办法约束标签的基线以匹配“故事板编辑器”中的另一个视图的底边?
我能用直接编码吗?那会是什么样的例子呢?

noj0wjuj

noj0wjuj1#

我确定故事板编辑器似乎不想直接这样做。你可以通过编程的方式这样做:

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选项。
不幸的是,NSLayoutConstraintsecondAttribute属性是只读的。否则,您可以创建一个故事板约束的出口,然后在viewDidLoad时间调整它。

6psbrbz9

6psbrbz92#

使用以下代码

let constraint = NSLayoutConstraint(
    item: myLabel,
    attribute: .bottom,
    relatedBy: relation,
    toItem: myView,
    attribute: .bottom,
    multiplier: 1,
    constant: constant
)
myLabel.addConstraint(constraint)

相关问题