如何根据UITableView中的单元格数量更改UITableViewCell内UItableView的高度

时间:2016-12-12 10:57:29

标签: ios objective-c uitableview nslayoutconstraint

我在UITableViewCell里面有一个UITableView,它固定在四个方面。我想根据它拥有的单元格数来改变UITableView的高度。为此我已经将UITableViewCell(name-TableCell)子类化。在其中,我使用此代码更新tableView高度。:

-(void)layoutSubviews{

    [super layoutSubviews];

    if ([self.data count] <= 5) {
        self.tableHeightConstraint.constant = ([self.data count]) * 44.0f;
    } else {
        self.tableHeightConstraint.constant = 5 * 44.0f;
    }
}

我动态更改了TableView的高度约束。它有时会起作用,但其他时候会导致打破约束导致应用程序的抖动行为。

这是改变身高的正确方法吗? 请帮忙!

修改1:

我在运行时插入和删除单元格。插入的单元格具有tableview,其大小基于单元格数是动态的。当我插入(包括上面的代码)插入是正确的。但是当我删除时,单元格(具有uitableview)仍然可见。当我将单元格滚出屏幕时,只有它不可见。 请帮助!

1 个答案:

答案 0 :(得分:1)

如果tableViewCell中的tableview被固定到单元格的所有边(底部,左侧,右侧,顶部),并且它没有高内容拥抱优先级,您可以设置单元格的高度。 外部 tableView in:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

内部tableview将被拉伸,因为它有固定约束