以编程方式定位视图组件会出错



>我在屏幕上有 2 个按钮,下面的一个锚定在视图的底部锚点上,上面的一个锚定在下按钮的顶部锚点上。但是,这会引发错误"'无法使用锚点激活约束,因为它们没有共同的祖先。 约束或其定位点是否引用不同视图层次结构中的项? 这是违法的。

我已经将两个按钮添加到视图(view.addSubView(并设置翻译自动调整大小MaskIntoConstraint= false,没有帮助。

view.addSubview(topButton)
topButton.centerXAnchor.constraint(equalTo:         view.centerXAnchor, constant: 0).isActive = true
topButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
topButton.widthAnchor.constraint(equalToConstant: 180).isActive = true
topButton.bottomAnchor.constraint(equalTo:  lowerButton.topAnchor, constant: 120).isActive = true
view.addSubview(lowerButton)
lowerButton.centerXAnchor.constraint(equalTo: view.centerXAnchor, constant: 0).isActive = true
lowerButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
lowerButton.widthAnchor.constraint(equalToConstant: 220).isActive = true
lowerButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -50).isActive = true
我想要发生的是将下按钮锚定到视图的底部锚点,将顶部按钮的底部锚点锚

定到下按钮的顶部锚点

在实际将 lowerButton 添加到视图层次结构之前,您正在添加涉及 lowerButton 的约束。只需view.addSubview(lowerButton)移动到添加顶部按钮的右下方。

最新更新