以编程方式将行插入UITableViewController

时间:2017-02-19 12:51:29

标签: ios objective-c uitableview

我有一个CoreData实体,我需要将每个对象的值填充到表视图单元格中。在故事板中,我可以添加行并单独更改单元格的样式,但在这种情况下,我根据我的对象数处理单元格,我必须以编程方式插入行并更改单元格样式。

enter image description here

我猜我需要一个带有代码的foreach循环来以编程方式插入行。有谁知道如何实现这个目标?

3 个答案:

答案 0 :(得分:1)

您必须实施OriginalCode。有关详细信息,请参阅API Reference。 将核心数据与UITableViewDataSource一起使用时,您可能还需要查看UITableView

答案 1 :(得分:1)

您需要使用UITableViewDataSource方法。将dataSource协议添加到您的类并符合它。您正在寻找的方法是:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

您可能还希望符合UITableViewDelegate协议。

做这样的事情:

class MyClass: UITableViewDataSource, UITableViewDelegate {

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//Do your thing
}

//Conform to rest of the delegate and datasource methods too. Click on UITableViewDataSource to see the documentation

答案 2 :(得分:1)

您需要实现override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Intreturn对象数组的计数,然后为单元格设置重用标识符并添加代码:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") //replace "Cell" with your identifier
    cell.textLabel = yourTitleArray[indexPath.row]
    cell.detailTextLabel = yourSubtitleArray[indexPath.row]
    return cell!
}

不要忘记用您的阵列替换yourTitleArrayyourSubtitleArray