Swift 以编程方式自定义静态单元格

Swift 以编程方式自定义静态单元格,swift,uitableview,Swift,Uitableview,我有许多自定义单元格(xib文件+UITableViewCell的swift子类),在许多场景中,我将它们用作动态单元格,一切都很好(注册单元格、出列等) 当我需要一个也可以使用这些单元格的静态tableView时,就会出现问题。我不能也不想使用故事板来实现这一点,因为我会失去可重用性 我尝试了下面的方法,但它显示的是普通的UITableViewCell,而不是我在xib中设计的CustomCell。看起来它不会从nib加载单元的子视图 private lazy var cells: [UITa

我有许多自定义单元格(xib文件+UITableViewCell的swift子类),在许多场景中,我将它们用作动态单元格,一切都很好(注册单元格、出列等)

当我需要一个也可以使用这些单元格的静态tableView时,就会出现问题。我不能也不想使用故事板来实现这一点,因为我会失去可重用性

我尝试了下面的方法,但它显示的是普通的
UITableViewCell
,而不是我在xib中设计的
CustomCell
。看起来它不会从nib加载单元的子视图

private lazy var cells: [UITableViewCell] = [
    CustomCell1(),
    CustomCell2(),
    CustomCell3(),
]

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

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    return cells[indexPath.row]
}
如何以编程方式使用静态自定义单元格创建
UITableView

编辑 @thedp的答案。自定义单元格是这样设计的。这只是一个例子:

final class CustomCell: UITableViewCell {
    @IBOutlet weak private var titleLabel: UILabel!
    @IBOutlet weak private var textView: MyCustomTextView!
    @IBOutlet weak private var doneButton: MyCustomButton!
    func configureCell(with: ...) { ... }
}
1) 按照通常对dynamic UITableView执行的操作注册单元格

2) 设置UITableView的数据源

3) 将单元格标识符存储在专用惰性变量单元格:[UITableViewCell]中,而不是分配的单元格中

4) 然后做下一步

override func tableView(_ tableView: UITableView,
    cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifer = cells[indexPath.row]
    let cell = tableView.dequeueReusableCell(withIdentifier:
    cellIdentifer, for: indexPath)
    return cell
}

您还可以在viewDidLoad()方法中将单元格出列,并将它们存储到数组中。但是dequeueReusableCell是必需的,您可以从类中分配它们

您可以共享
CustomCell
的代码吗?