在tableViewCell内部添加tableView

时间:2019-10-08 09:35:49

标签: ios swift uitableview

我正在尝试在表格视图单元格内使用表格视图。这是我的代码

class TableViewInsideCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource{

    @IBOutlet weak var tableView: UITableView!


    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        tableView.delegate = self
        tableView.dataSource = (self as! UITableViewDataSource)
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }

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

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

     override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell( withIdentifier: "identifier",for: indexPath)
        return cell
    }

}

我收到错误消息,告诉我numberOfSections, numberOfRowsInSectioncellForRowAt没有覆盖其超类中的任何方法。

2 个答案:

答案 0 :(得分:1)

遵守协议时,您只需实施方法主体。

子类的子类时,可以Override方法。

当您使用自定义TableViewController时,您会使用override方法,因为您不是符合UITableViewDataSource的人,所以超级视图(UITableViewController)是。

但是,如果您不是从UITableViewController继承,例如您的情况是从UITableViewCell继承,则该方法不在超类中,您应该自己实现。

答案 1 :(得分:0)

我不建议在UITableView中使用UITableViewCell。建议您将UITableView与具有自定义UITableViewCell的{​​{1}}一起使用,并且在此UIView中,您将UIView与自定义UICollectionView一起使用。