我有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(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 举报,一经查实,本站将立刻删除。