使用iOS8调整单元格大小

时间:2015-03-12 17:55:45

标签: uitableview ios8 autolayout

我有一个自定义单元格,我想在点击时调整它的大小。

单元格由XIB创建,单元格包含子视图。我已经设置了所有自动布局规则,并且它在开始时工作正常。

Cell 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会更容易。

0 个答案:

没有答案