我在屏幕上有2个按钮,下面的一个锚定到视图的底部锚点,上面的一个锚定到下部按钮的顶部锚点。但是,这会引发错误“无法使用锚点激活约束,因为它们没有共同的祖先。约束或其锚点是否引用了不同视图层次结构中的项?这是非法的。”
我已经将两个按钮都添加到了视图(view.addSubView)并设置了translatesAutoresizingMaskIntoConstraints = 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
我想要发生的是将下部按钮固定在视图的底部锚点上,将顶部按钮的底部锚点固定在下部按钮的顶部锚点上
答案 0 :(得分:1)
您要添加涉及lowerButton的约束,然后才能将其实际添加到视图层次结构中。只需将view.addSubview(lowerButton)
移动到添加topButton下方的右侧即可。