Tableview Controller在其静态单元格中具有动态Tableview

时间:2020-02-13 02:11:41

标签: ios uitableview swift5

我在tableview控制器中有一个表单。表单的最后3个部分是地址文本字段,地图和保存按钮。当用户开始在地址字段上键入信息时,ui​​table视图将向上滑动,覆盖地图以显示不同的结果。当我将子tableview mapTableview的委托和数据源设置为self时,这就是问题开始的时间,屏幕仅显示白色背景。我尝试了其他解决方案,但它们不起作用。也尝试过这种方法,但是数据源必须来自tableview控制器本身。 Dynamic Tableview inside a Static tableview Cell

当我在Datasource类中创建字符串数组并将以下代码放在我的tableview控制器中时,这些字符串将显示在mapTableView中。

    var dataSource = DataSource() 


    mapTableView.delegate = dataSource
    maptTableView.delegate = dataSource 

但是由于数据源必须来自tableview控制器,所以我尝试将代码以及其他帖子中建议的其他内容放在我的table view控制器中,但是屏幕什么也不会显示,只是全白。而我得到这些错误:


被告知UITableView可以布局其可见的单元格和其他内容,而不必位于视图层次结构中(表视图或其父视图之一尚未添加到窗口中)


检测到一种情况,即约束条件模糊地表明表格视图单元格的内容视图的高度为零。我们考虑的是无意倒塌,而是改用标准高度


    extension EditProfileTableViewController {

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
          return pois.count
      }

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = tableView.dequeueReusableCell(withIdentifier: "cellResult", for: indexPath) as! MapTableViewCell

       let poi = pois[indexPath.row]

       cell.textLabel?.text = poi.title
       cell.detailTextLabel?.text = poi.subtitle
       cell.detailTextLabel?.numberOfLines = 0

       return cell
     }
 }

在我的viewDidLoad

tableView.estimatedRowHeight = 60.0;
tableView.rowHeight = UITableView.automaticDimension;

如何正确地将表格视图放入静态表格视图单元中?请帮忙

1 个答案:

答案 0 :(得分:0)

  1. 您应该为内部表视图创建另一个表视图控制器。我们称之为MapTableViewController
  2. Container View添加到情节提要中的静态单元格中。
  3. Table View Controller添加到该容器视图中,将其类设置为MapTableViewController
  4. mapTableView的所有数据源/代理方法从EditProfileTableViewController放入MapTableViewController。之后,EditProfileTableViewController应该根本没有UITableViewDataSourceUITableViewDelegate协议方法。
相关问题