UITableViewController作为子视图swift

时间:2016-07-08 10:35:56

标签: ios swift cell subview tableviewcell

我正在尝试制作我的第一个应用程序而且此时我已经陷入困境。

我的应用程序看起来像Snapchat,水平滚动视图,左侧部分由tableview组成。 因此,在这个左侧部分中,我将tableViewController作为子视图。问题是细胞总是空的!表格视图显示右侧单元格的高度,但单元格为空。

我相信你可以帮助我,谢谢你!

I make the subview here

Link with cells here

2 个答案:

答案 0 :(得分:0)

我知道这不是你问题的答案,但我有一个建议,从长远来看可能对你有帮助,也许可以帮助你调试当前的问题:
如何拆分tableViews'逻辑分成UITableViewController个?这样你就可以避免一些巨大的共同UIViewController。您可以在故事板中使用容器视图,它可以嵌入UIViewController

Container View in Storyboard

答案 1 :(得分:0)

请确保在表视图控制器中覆盖必要的方法并在添加子视图控制器代码rutin时平衡调用。添加子视图控制器时,最后一件事就是为控制器视图提供正确的大小。

用于将表视图控制器添加为子视图控制器

 guard let list = R.storyboard.dashboard.addressesController()else {
      return
    }

    self.list = list

    self.addChildViewController(list)
    self.scroll.addSubview(list.view)
    list.didMoveToParentViewController(self)

    list.tableView.layoutIfNeeded()

    list.view.snp_makeConstraints(closure: {
      (make) in
      make.left.equalTo(self.view).offset(10)
      make.right.equalTo(self.view).offset(-10)
      make.bottom.equalTo(self.scroll)
      make.height.equalTo(list.tableView.contentSize.height)
      make.top.equalTo(authorizedTop.snp_bottom).offset(10)
    })

用于扩展表视图控制器

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(self.cellIdentifier) as UITableViewCell

        cell.textLabel?.text = self.tableData[indexPath.row]

        return cell
    }