title: When added to a view, the constraint's items must be descendants of that view (or the view itself).
body: <p>Here is my following code:</p>
  
  <pre><code>    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -&gt; UIView? {
      let headerView = UIView()
      headerView.backgroundColor = UIColor.white
      let headerLabel = UILabel(frame: CGRect(x: 30, y: 0, width:
        tableView.bounds.size.width, height: tableView.bounds.size.height))
      headerLabel.font = UIFont().robotoMedium(withFontSize: 10)
      headerLabel.textColor = CustomColor.lightGrey.color
      headerLabel.text = "Travel Shops"
      headerLabel.sizeToFit()
      headerView.addSubview(headerLabel)
      headerLabel.translatesAutoresizingMaskIntoConstraints = false
  
      headerLabel.addConstraint(NSLayoutConstraint(item: headerLabel, attribute: .trailing, relatedBy: .equal, toItem: tableView, attribute: .trailing, multiplier: 1, constant: 0))
      headerLabel.addConstraint(NSLayoutConstraint(item: headerLabel, attribute: .leading, relatedBy: .equal, toItem: tableView, attribute: .leading, multiplier: 1, constant: 0))
  
      headerLabel.addConstraint(NSLayoutConstraint(item: headerLabel, attribute: .top, relatedBy: .equal, toItem: self.topLayoutGuide, attribute: .bottom, multiplier: 1, constant: 0))
      headerLabel.addConstraint(NSLayoutConstraint(item: headerLabel, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 131))
      return headerView
    }
  </code></pre>
  
  <p>But the application crashes with the following:</p>
  
  <p><strong>When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] to debug.</strong></p>