在Swift中将自定义UITableViewCell共享给多个UITableViewController

时间:2016-11-02 10:03:18

标签: ios swift uitableview

目前,我有两个表视图控制器,它们包含一些相同的自定义tableview单元格。每个表视图控制器都有自己的自定义tableview单元格。我希望在这些两个表格视图控制器中仅创建一个自定义表格视图单元格,这可以是共享。我可以参考任何指南吗?

1 个答案:

答案 0 :(得分:5)

首先,您可以使用代码创建UITableViewCell :(您可以在.xib文件中设计单元格视图 - 有关详细信息,请参阅here

// MyCell.Swift

import UIKit
import Foundation

class MyCell: UITableViewCell {
    // do whatever you want to customize the cell
}

然后,在您的两个UITableViewController课程中,在UITableViewCell中注册自定义viewDidLoad课程。

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.register(MyCell.self as AnyClass, forCellReuseIdentifier: "cell")
}

然后在cellForRowAtIndexPath函数中创建/重用此自定义单元格:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell: MyCell? = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? MyCell
    if cell == nil {
        // if the cell is not yet created in the system, create a new cell object
        cell = MyCell(style: .default, reuseIdentifier: "cell")
    }

    // customize your cell...
    cell.textLabel?.text = "Your Label Text"

    return cell!
}