将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;
}

注意

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...