我有一个自定义单元格,我想在点击时调整它的大小。
单元格由XIB创建,单元格包含子视图。我已经设置了所有自动布局规则,并且它在开始时工作正常。
我已使用estimatedHight设置我的表格视图:
self.tableView.estimatedRowHeight = 44.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;
我创建了一个更改子视图高度的NSLayoutConstraint。
我已经创建了一个按钮,在方法中(在单元格内部)我修改了该约束的常量:
- (IBAction)expandCollapseCell:(id)sender {
self.mainLabelViewHeightContraint.constant = 150;
[self setNeedsLayout];
[self layoutIfNeeded];
}
而不是自动调整我的单元格,这会破坏我的自动布局规则:
translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7fba8a786080 UITableViewCellContentView:0x7fba8a76b5e0.bottomMargin == UIView:0x7fba8a7c3490.bottom - 1>",
"<NSLayoutConstraint:0x7fba8a786120 UIView:0x7fba8a7c3490.top == UITableViewCellContentView:0x7fba8a76b5e0.topMargin + 2>",
"<NSLayoutConstraint:0x7fba8a55dc70 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fba8a76b5e0(43)]>",
"<NSLayoutConstraint:0x7fba8a76a1d0 V:[UIView:0x7fba8a7c3490(>=150)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fba8a76a1d0 V:[UIView:0x7fba8a7c3490(>=150)]>
我想我已经输了,因为我认为在单元格中使用autolayout会更容易。