以编程方式添加约束以相对于兄弟查看

Programmatically add constraint to view relative to a sibling

我正在使用自动布局。我有一个带有子视图 (sb1) 的视图。我正在以编程方式向该视图添加另一个子视图 (sb2)。我正在向这个新的子视图添加约束。

我想完成的事情:

在 sb1 下面添加 sb2,并在 sb2 的顶部添加一个约束以将其固定到 sb1。

我尝试过的:

[self.containerView insertSubview:sb1
                     belowSubview:sb2];

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:sb1 
                     attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual 
                     toItem:sb2 attribute:NSLayoutAttributeTop multiplier:1.0f constant:0.f];

[self.otherLeftView addConstraint:constraint];

发生的事情是我新添加的子视图被固定到容器视图的顶部,而不是 sb1(这是我想要发生的)。正在发生的事情的视觉效果:

有谁知道如何在 SB1 和 SB2 之间添加约束?谢谢!

试试这个:

NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:sb1 
                     attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual 
                     toItem:sb2 attribute:NSLayoutAttributeTop multiplier:1.0f constant:0.f];