我有一个自定义的 Jmeter 视图。和一个标签,显示由 Jmeter 绘制的数值。使用AutoLayout约束,我希望将标签的baseline与视图的bottom对齐。当我在两者之间进行ctrl拖动并选择对齐底部,然后尝试使用Size Inspector来调整它时,它不会给予我标签的基线选项(只有Top、Bottom和Center Y)。是否没有办法约束标签的基线以匹配“故事板编辑器”中的另一个视图的底边?我能用直接编码吗?那会是什么样的例子呢?
baseline
bottom
Size Inspector
Top
Bottom
Center Y
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选项。不幸的是,NSLayoutConstraint的secondAttribute属性是只读的。否则,您可以创建一个故事板约束的出口,然后在viewDidLoad时间调整它。
Placeholder remove at build time
NSLayoutConstraint
secondAttribute
viewDidLoad
6psbrbz92#
使用以下代码
let constraint = NSLayoutConstraint( item: myLabel, attribute: .bottom, relatedBy: relation, toItem: myView, attribute: .bottom, multiplier: 1, constant: constant ) myLabel.addConstraint(constraint)
2条答案
按热度按时间noj0wjuj1#
我确定故事板编辑器似乎不想直接这样做。你可以通过编程的方式这样做:
为了使故事板体验更好,我使用了一个从下到下的约束,并选中了
Placeholder remove at build time
选项。不幸的是,
NSLayoutConstraint
的secondAttribute
属性是只读的。否则,您可以创建一个故事板约束的出口,然后在viewDidLoad
时间调整它。6psbrbz92#
使用以下代码