【发布时间】:2017-10-15 17:43:12
【问题描述】:
我认为我这样做是正确的,在尝试激活约束之前将 addItemButton 添加到 self.view,但它抛出了这个错误:
'无法使用锚激活约束,因为它们没有共同的祖先。约束或其锚点是否引用不同视图层次结构中的项目?这是非法的。'
var addItemButton: UIButton{
let button = UIButton()
let dim: CGFloat = 64.0
button.frame = CGRect(x: 0, y: 0, width: dim, height: dim)
button.tintColor = Constants.color4
button.layer.cornerRadius = dim / 2
button.layer.masksToBounds = true
button.translatesAutoresizingMaskIntoConstraints = false
return button
}
extension MainViewController{
func setupView(){
view.addSubview(itemsCollectionView)
view.addSubview(addItemButton)
addItemButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
addItemButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
}
我认为 view.addSubView(addItemButton) 会创建必要的层次结构。
【问题讨论】: