Dynamic Tableview inside UItableViewCell

use*_*810 3 dynamic uitableview swift

我想在dynamic height内部实现 subTableView UITableViewCell,因为 subTableView 有带有动态的单元格UITableViewCell。如果有人已经实现了这个场景,请分享你的想法。

-UItableview(Parent)
  -UItableviewCell
     -UITableView(child)
        -UItableviewCell(dynamic content).
Run Code Online (Sandbox Code Playgroud)

Lea*_*ner 11

第一种方法: 为子 tableView 创建一个子类并覆盖 internalContentSize。

         class MyOwnTableView: UITableView {
        override var intrinsicContentSize: CGSize {
            self.layoutIfNeeded()
            return self.contentSize
        }

        override var contentSize: CGSize {
            didSet{
                self.invalidateIntrinsicContentSize()
            }
        }

        override func reloadData() {
            super.reloadData()
            self.invalidateIntrinsicContentSize()
        }
    }
Run Code Online (Sandbox Code Playgroud)

2. 在界面生成器中,将子 tableView 的类更改为 MyOwnTableView(子类 UItableView)。

  1. 为父表和子表视图设置自动行高。

        tableView.estimatedRowHeight = 60.0;
        tableView.rowHeight = UITableViewAutomaticDimension;
    
    Run Code Online (Sandbox Code Playgroud)

第二种方法: 1. 为子 tableView 创建一个具有任意值的高度约束,并连接一个设置子 tableView 高度的 IBOutlet。2. 将高度约束的常量设置为 tableView.contentSize.height

    self.tableViewHeight.constant = self.tableView.contentSize.height
Run Code Online (Sandbox Code Playgroud)

  • 第二种方法的代码最好放在哪里?`awakeFromNib()` 或 `layoutSubviews()` 还是其他地方? (2认同)