Ios 自定义UITableViewCell-can';似乎没有添加子视图

Ios 自定义UITableViewCell-can';似乎没有添加子视图,ios,swift,uitableview,snapkit,Ios,Swift,Uitableview,Snapkit,我已经创建了一个自定义的UITableViewCell类,如下所示(以编程方式-不使用故事板): 出于某种原因,我遇到了一个错误,contentView和groupLabel不在同一个视图层次结构中,但它们是-我已将groupLabel作为子视图添加到contentView,如您所见。有什么原因导致这个错误吗?我也用常规的Atuolayout API(而不是SnapKit)进行了一次尝试,但没有这样的运气。我觉得这可能是我错过的一个小错误。我还尝试了equaltosperview约束,而不是上面

我已经创建了一个自定义的
UITableViewCell
类,如下所示(以编程方式-不使用故事板):

出于某种原因,我遇到了一个错误,
contentView
groupLabel
不在同一个视图层次结构中,但它们是-我已将
groupLabel
作为子视图添加到
contentView
,如您所见。有什么原因导致这个错误吗?我也用常规的Atuolayout API(而不是SnapKit)进行了一次尝试,但没有这样的运气。我觉得这可能是我错过的一个小错误。我还尝试了
equaltosperview
约束,而不是上面所示的约束,但正如预期的那样,它也抛出了相同的错误-
groupLabel
的superview返回
nil

错误:

Unable to activate constraint with anchors <NSLayoutXAxisAnchor:0x280870b80 
"UILabel:0x105e79fa0'Test Group'.centerX"> and <NSLayoutXAxisAnchor:0x280870a00 
"UITableViewCellContentView:0x105fa16a0.centerX"> because they have no common ancestor. 
 Does the constraint or its anchors reference items in different view hierarchies?  That's illegal.'
无法使用锚激活约束,因为它们没有共同的祖先。
约束或其锚定是否引用不同视图层次中的项?这是违法的。”
试试这个

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    addSubview(groupLabel)
    groupLabel.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        groupLabel.leadingAnchor.constraint(equalTo: leadingAnchor,constant: 16),
        groupLabel.topAnchor.constraint(equalTo: topAnchor, constant: 16),
        groupLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16),
        groupLabel.bottomAnchor.constraint(equalTo: bottomAnchor,constant: -16),
    ])

}
像这样更改您的组标签

let groupLabel : UILabel = {
        let label = UILabel()
        label.textColor = .black
        label.text = "Test Group"
        label.font = UIFont(name: "candara", size: 20)
        return label
}()
改为

make.center.equalTo(self.contentView.snp.center)

而不是

make.center.equalTo(self.contentView)

是否要将grouplabel添加到表格单元格并在单元格中居中?是的,这就是目标将grouplabel更改为更新后的answerPerfect中的label,这是出于某种原因出现的问题—声明UILabel的错误。谢谢那很好,很乐意帮助你
make.center.equalToSuperview()
make.center.equalTo(self.contentView)