基本上我需要做这里所做的事情 - Not able to add static UITableViewCell into tableview
但是我需要在swift中完成它并且我不知道如何将目标C解决方案转换为swift
答案 0 :(得分:0)
尝试:
let nibName = "nameOfYourCellNib"
let cell = Bundle.main.loadNibNamed(nibName, owner: nil, options: nil)?.first as? {YOUR_CELL_CLASS_HERE}
答案 1 :(得分:0)
我可以知道您是在尝试创建静态单元格还是动态单元格? 解决方案可以简单地更改表格视图中的单元格,而不是将其添加到代码或单独的xib
中答案 2 :(得分:0)
首先,这不是要求代码示例的地方。您应该查看Codementor等解决方案,在那里您可以找到所需的帮助;)
它们是解决问题的不同方法。
首先,您使用的是xib,因此无法在其中添加单元格。 相反,你可以使用故事板。在这种情况下,您将能够做任何您想做的事情并添加自定义单元格。
1 - 如果你真的必须使用xib,那么你可以使用alanlo方法加载自定义单元格。我建议使用扩展名注册您的自定义单元格,如下所示:
extension UITableViewCell {
class func register(tableView: UITableView) {
let identifier = String(describing: self)
let nib = UINib(nibName: identifier, bundle: nil)
tableView.register(nib, forCellReuseIdentifier: identifier)
}
}
请注意,您的单元格标识符需要与自定义tableviewcell类相同(此处为YourCustomCellTableViewCell)
2-然后在viewdidload
:
YourCustomCellTableViewCell.register(tableView: yourTableView)
3 - 然后由于延迟延伸,您可以轻松地将您的细胞出列:
extension UITableView {
func dequeue<T: UITableViewCell>(indexPath: IndexPath) -> T {
let identifier = String(describing: T.self)
guard let cell = dequeueReusableCell(withIdentifier: identifier, for: indexPath) as? T else {
fatalError()
}
return cell
}
}
4 - 在cellForRowAt
使用:
let cell: YourCustomTableViewCell = yourTableView.dequeue(indexPath: indexPath)
return cell