Ios UITableViewCell内的约束问题

Ios UITableViewCell内的约束问题,ios,swift,uitableview,nslayoutconstraint,Ios,Swift,Uitableview,Nslayoutconstraint,我有一个用于UITableView的自定义单元格。我希望在单元格内包含以下元素: 1) UITextView具有以下约束: 它从单元格的左上角开始 它从单元格+10的左侧一直到单元格-10的右侧 其底部应比下一个元件高5点(见下文2) 2) UIButton具有以下约束: 它是以X和Y为中心的单元 它从单元格的左侧+20一直到单元格的右侧 手机号码是-20 它有60英尺高 单元本身的定义高度为100 然而,根据我得到的错误,我的约束似乎有一些冲突,但我不知道在哪里。这是我的密码: //

我有一个用于UITableView的自定义单元格。我希望在单元格内包含以下元素:

1) UITextView具有以下约束:

  • 它从单元格的左上角开始
  • 它从单元格+10的左侧一直到单元格-10的右侧
  • 其底部应比下一个元件高5点(见下文2)
2) UIButton具有以下约束:

  • 它是以X和Y为中心的单元
  • 它从单元格的左侧+20一直到单元格的右侧 手机号码是-20
  • 它有60英尺高
单元本身的定义高度为100

然而,根据我得到的错误,我的约束似乎有一些冲突,但我不知道在哪里。这是我的密码:


//UIButton的约束
answerTextButton.heightAnchor.constraint(equalToConstant:60)。isActive=true
answerTextButton.leadingAnchor.constraint(等式:leadingAnchor,常数:20)。isActive=true
answerTextButton.trailingAnchor.constraint(等式:trailingAnchor,常数:-20)。isActive=true
answerTextButton.centerXAnchor.constraint(等于:centerXAnchor).isActive=true
answerTextButton.centerYAnchor.constraint(等式:centerYAnchor).isActive=true
//UITextView的约束
answerTextView.leadingAnchor.constraint(等式:leadingAnchor,常数:10)。isActive=true
answerTextView.trailingAnchor.constraint(等式:trailingAnchor,常数:-10)。isActive=true
answerTextView.topAnchor.constraint(equalTo:topAnchor).isActive=true
answerTextView.bottomAnchor.constraint(等式:answerTextButton.topAnchor,常数:-5)。isActive=true
这里有什么冲突

谢谢

编辑:我不相信我的错误。虽然您认为X-center约束毫无用处,但这不是问题所在。问题是。。。我忘记添加“answerTextView.translatesAutoresizingMaskIntoConstraints=false”。
对不起,以前从未发生过!因此,基本上我对UITextView的所有约束都是混乱的。添加它修复了所有问题,但我保留了您的建议,删除了ui按钮上的X-center约束。

复制并粘贴。它将起作用

       // constraints for the UIButton

    answerTextButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
    answerTextButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20).isActive = true
    answerTextButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20).isActive = true
    answerTextButton.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true


      // constraints for the UITextView
    answerTextView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 10).isActive = true
    answerTextView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -10).isActive = true
    answerTextView.topAnchor.constraint(equalTo: topAnchor).isActive = true
    answerTextView.bottomAnchor.constraint(equalTo: answerTextButton.topAnchor, constant: -5).isActive = true

复制并粘贴。它将起作用

       // constraints for the UIButton

    answerTextButton.heightAnchor.constraint(equalToConstant: 60).isActive = true
    answerTextButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20).isActive = true
    answerTextButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20).isActive = true
    answerTextButton.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true


      // constraints for the UITextView
    answerTextView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 10).isActive = true
    answerTextView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -10).isActive = true
    answerTextView.topAnchor.constraint(equalTo: topAnchor).isActive = true
    answerTextView.bottomAnchor.constraint(equalTo: answerTextButton.topAnchor, constant: -5).isActive = true

answerTextButton.centerXAnchor.constraint(equalTo:centerXAnchor).isActive=true
由于您已经指定了前导约束和尾随约束,因此此行无效。您还说单元格的高度为100,但居中按钮的高度为60,这没有多大意义,因为您将有20个顶部和20个底部左侧,如果您在textview和按钮之间需要5个空间,则textview的高度将为15,这是,您知道的,不多…
answerTextButton.centerXAnchor.constraint(等号:centerXAnchor).isActive=true
由于您已经指定了前导和尾随约束,所以此行没有任何效果。您还说单元格的高度为100,但居中按钮的高度为60,这没有多大意义,因为您将有20个顶部和20个底部左侧,如果您在textview和button之间需要5个空间,则将剩下1个文本视图的高度为5,这是,你知道,不多。。。