微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将Dynamic Cell的表视图内容高度设置为表视图高度约束ios

我有tableview(A)的每个自定义单元都有tableview(B)和动态表视图单元格.

在tableview(A)cellForRowAtIndex.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

     MainMessageTVCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MsgMainCell"];

        cell.selectionStyle = UITableViewCellSelectionStyleNone;

        NSInteger index = indexPath.row;

        MessageMain *result = tableData[index];

        cell.dateLabelTC.text = [Nsstring stringWithFormat:@"Date : %@",result.createdTime];
        cell.subjectLabelTC.text = [Nsstring stringWithFormat:@"Subject : %@",result.subject];

        NSArray *arrList = result.messageList;
        [cell setupTableData:(NSMutableArray *)arrList];

        [cell setNeedsUpdateConstraints];
}

在tableview(A)的自定义单元重载表视图(B).

-(void)setupTableData:(NSMutableArray *)tableData{

    _tableData = tableData;

    [self.tableView reloadData];
}
-(void)updateConstraints{
    [super updateConstraints];

    dispatch_async(dispatch_get_main_queue(),^{
        [self.tableView layoutIfNeeded];
        CGFloat height = self.tableView.contentSize.height;//+1000;
        tableBHeightConstraints.constant  = height;
    });
}

tableBHeightConstraints是tableview(A)的单元格子表中表视图(B)的高度约束.
tableBHeightConstraints.constant没有获得所有计算约束的正确值.

在动态表格单元格的高度设置之后,获得tableView.contentSize.height的最佳位置或方法是什么.

这是tableview(A)的Cell

enter image description here

enter image description here

这是tableview(B)的Cell

请帮帮我们

解决方法

在viewDidLoad方法添加以下代码.

self.tableView.rowHeight = UITableViewAutomaticDimension;
    [self.tableView setEstimatedRowHeight:85.0];

包括estimatedHeightForRowAtIndexPath方法并返回估计的行高,如下所示,

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 100;
}

为heightForRowAtIndexPath指定自动维度.该方法向委托询问用于指定位置的行的高度.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewAutomaticDimension;
}

注意

要使表格行具有动态高度,必须将内容视图中的标签固定到顶部和底部,以便它们可以根据内容缩小或增大.如果您遇到任何困难,请更新我以防万一.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐