UITableViewCell 中的 UITableView 没有给出正确的结果

Posted

技术标签:

【中文标题】UITableViewCell 中的 UITableView 没有给出正确的结果【英文标题】:UITableView inside UITableViewCell not giving correct result 【发布时间】:2020-05-21 11:51:42 【问题描述】:

我需要在 UITableView 中显示以下结构。我在 MainTableViewCell 中创建了 childTableView。另外两个 tableviewCell 都需要根据描述计算动态高度。

    [
        
            "schedule_type": "appointment",
            "schedule_id": “1234”,
            “schedule_desc”: “This is long text. Needs to mange with dynamic height in UILabel”,
            “activities” : [
                        
                            “activity_id” : “12”,
                            “activity_desc” : “long description”
                        ,
                        
                            “activity_id” : “123”,
                            “activity_desc” : “long description”
                        ,
                        
                            “activity_id” : “121”,
                            “activity_desc” : “long description”
                        
                    ]
        ,
        
            "schedule_type": "appointment",
            "schedule_id": “1234”,
            “schedule_desc”: “This is long text. Needs to mange with dynamic height in UILabel”,
            “activities” : [
                        
                            “activity_id” : “12”,
                            “activity_desc” : “long description”
                        ,
                        
                            “activity_id” : “123”,
                            “activity_desc” : “long description”
                        ,
                        
                            “activity_id” : “121”,
                            “activity_desc” : “long description”
                        
                    ]
        

 ]

为了计算动态高度,我在 MainTableViewCell 中编写了以下代码。

self.childTable.dataSource = self;
self.childTable.delegate = self;
[self.childTable reloadData];
[self.childTable layoutIfNeeded];
self.childViewHeightConstraint.constant = self.childTable.contentSize.height

但是当我设置断点来计算 childTableView 高度时,它给了我单元格的默认值,即 44。因此,它没有根据内容进行更新,我的整个单元格看起来很乱。

我的方法是正确的还是有其他更好的方法可以在 tableview 中实现上述数据?

【问题讨论】:

【参考方案1】:

如果您将设置代码放在视图中确实加载,它将无法工作。 您需要添加self.childViewHeightConstraint.constant = self.childTable.contentSize.height 以覆盖viewDidLayoutSubviews。如果您的约束设置正确,例如灵活,您将获得正确的 self.childTable.contentSize.height 值。

【讨论】:

以上是关于UITableViewCell 中的 UITableView 没有给出正确的结果的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 上的动画按钮而不影响其他 UITableViewCell

如何根据位置修改空 UITableViewCell 对象的背景颜色?

在自定义 UITableViewCell UITextField 中输入的值转换为其他字段

UITableViewCell 自动高度问题

iPhone如何实现一个“宽”的UITableViewCell?

UITableViewCell中如何减小ContentSize的宽度