Ios Swift编程约束不起作用

Ios Swift编程约束不起作用,ios,swift,xcode,Ios,Swift,Xcode,我正在尝试创建一个内部有段控件的uiview。我希望能够将此uiview添加到我的viewcontroller视图中。段控件应该位于我的tableview的正上方。但每次我设置约束时,都会出现这个错误 线程1:异常:“无法激活带有锚的约束,因为它们没有共同的祖先。”。约束或其锚定是否引用不同视图层次中的项?这是非法的。”“我试着通过先添加子视图来解决这个问题,但是它不起作用。如果有人能帮我,这是我的密码 func configureTableView(){ setupSegmen

我正在尝试创建一个内部有段控件的uiview。我希望能够将此uiview添加到我的viewcontroller视图中。段控件应该位于我的tableview的正上方。但每次我设置约束时,都会出现这个错误 线程1:异常:“无法激活带有锚的约束,因为它们没有共同的祖先。”。约束或其锚定是否引用不同视图层次中的项?这是非法的。”“我试着通过先添加子视图来解决这个问题,但是它不起作用。如果有人能帮我,这是我的密码

    func configureTableView(){
    setupSegmentControl()
    view.addSubview(tableView)
    
    setTableViewDelegates()
    tableView.rowHeight = 50
    tableView.translatesAutoresizingMaskIntoConstraints = false
    tableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
    tableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
    tableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
    self.tableView.topAnchor.constraint(equalToSystemSpacingBelow: self.view.topAnchor, multiplier: 20).isActive = true
    tableView.register(UINib(nibName: "CustomCellNSB2", bundle: nil), forCellReuseIdentifier: "CustomCellNSB2")
}
func setTableViewDelegates(){
    tableView.delegate = self
    tableView.dataSource = self
}
func setupSegmentControl(){

    var headerView = UIView()
    var importanceSegmentControl = CustomSegmentControl()
    headerView.addSubview(importanceSegmentControl)

    self.view.addSubview(headerView)



    importanceSegmentControl.addTarget(self, action: #selector(indexChanged(control:)),for: UIControl.Event.valueChanged)


    headerView.translatesAutoresizingMaskIntoConstraints = false
    headerView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 20).isActive = true
    headerView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -20).isActive = true
    headerView.bottomAnchor.constraint(equalTo: self.tableView.topAnchor, constant: 20).isActive = true
    headerView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 10).isActive = true
    
    importanceSegmentControl.translatesAutoresizingMaskIntoConstraints = false
    importanceSegmentControl.leadingAnchor.constraint(equalTo: headerView.leadingAnchor, constant: 20).isActive = true
    importanceSegmentControl.trailingAnchor.constraint(equalTo: headerView.trailingAnchor, constant: -20).isActive = true
    importanceSegmentControl.bottomAnchor.constraint(equalTo: headerView.topAnchor, constant: 20).isActive = true
    importanceSegmentControl.topAnchor.constraint(equalTo: headerView.topAnchor, constant: 10).isActive = true
}

将约束添加到
importanceSegmentControl
时,
tableView
importanceSegmentControl
没有任何公共祖先。因此,要解决此问题,只需切换执行顺序:

func configureTableView(){
    view.addSubview(tableView)
    setupSegmentControl()
    //...
}