我有一个带有标签,按钮和大小为0的隐藏文本字段的TableViewCell。 如果用户轻击按钮,则文本字段将变为可见。到目前为止,一切都很好。但是在控制台中,我在该动画期间遇到约束错误,因为文本字段需要的空间比当前单元格的大小要大。
如何避免约束错误?
这是我的实现方式:
func showTextField(show:Bool){
if show{
if textFieldHeightConstraint.constant != 200{
UIView.animate(withDuration: 0.4) { [weak self] in
self?.textFieldHeightConstraint.constant = 200
self?.feedbackTextView.isHidden = false
self?.viewModel?.refreshTableView()
}
}
}
else{
textFieldHeightConstraint.constant = 0
feedbackTextView?.text = "TODO"
feedbackTextView.isHidden = true
viewModel?.refreshTableView()
}
}
//然后在控制器中:
func refreshTableView(){
tableView.beginUpdates()
tableView.endUpdates()
}
约束错误:
(
"<NSLayoutConstraint:0x600000a3fa70 UITextView:0x7f8cd4073e00'TODO'.height == 200 (active)>",
"<NSLayoutConstraint:0x600000a13020 V:|-(16)-[UILabel:0x7f8cd2e19130'M\U00f6chten Sie zu dieser Rec...'] (active, names: '|':UITableViewCellContentView:0x7f8cd2e140d0 )>",
"<NSLayoutConstraint:0x600000a0fb10 V:[UILabel:0x7f8cd2e19130'M\U00f6chten Sie zu dieser Rec...']-(8)-[UIButton:0x7f8cd2e16ea0'Add remark'] (active)>",
"<NSLayoutConstraint:0x600000a0a490 V:[UITextView:0x7f8cd4073e00'TODO']-(>=16)-| (active, names: '|':UITableViewCellContentView:0x7f8cd2e140d0 )>",
"<NSLayoutConstraint:0x600000a32440 V:[UIButton:0x7f8cd2e16ea0'Add remark']-(8)-[UITextView:0x7f8cd4073e00'TODO'] (active)>",
"<NSLayoutConstraint:0x600000a484b0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7f8cd2e140d0.height == 156 (active)>"
)