在自定义UITableView中设置委托和数据源

时间:2017-03-01 04:34:10

标签: ios iphone swift uitableview subclass

我尝试将UITableView创建为UIViewController的自定义子视图,但数据未显示在表格中。我怀疑问题是我的delegatedatasource表没有设置。我该如何链接它们? UITableViewDataSource似乎无法在UITableView班级内工作?

的UIViewController

    let projectDeck = ProjectDeck()
    projectDeck.frame = CGRect(x: 0, y: statusBarHeight + 132, width: screenWidth, height: screenHeight - 132)
    self.view.addSubview(projectDeck)

的UITableView

class ProjectDeck: UITableView {

    var items = ["Test", "TestTest", "TestBestWestVest"]

    override func numberOfRows(inSection section: Int) -> Int {
        return items.count
    }

    override func cellForRow(at indexPath: IndexPath) -> UITableViewCell? {
        let cell = UITableViewCell()
        cell.textLabel?.text = items[indexPath.row]
        return cell
    }

}

2 个答案:

答案 0 :(得分:0)

在viewcontrloller中设置委托和数据源

即。在viewcontroller中

projectdesc.tableview.datasource = self
projectdesc.tableview.delegate = self

并在viewccontroller

中实现tableview的方法,如cellforRow

并确保在viewcontroller中正确添加tableview作为子视图

答案 1 :(得分:0)

您需要添加数据源和委托引用。

您可以通过插座或故事板来实现。

使用奥特莱斯:

yourTableView.datasource = self
yourTableView. delegate = self

使用StoryBoard

ctrl-将表格视图拖动到第一响应者旁边的viewcontroller,然后单击datasource和delegate。