Quelqu'un d'autre a-t-il un problème avec la méthode tableView.registerClass
avec Swift?
Il ne vient plus de compléter le code pour moi (je ne peux pas non plus l'utiliser si je le saisis manuellement) mais il est toujours dans les en-têtes ...
Cela fonctionne parfaitement pour moi.
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
Exactement comme je l'ai ci-dessus.
For Swift 2.2 Inscrivez-vous pour une cellule par défaut de la classe
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "DefaultCell")
For Swift 3.0 Inscrivez-vous pour la cellule par défaut de la classe
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "DefaultCell")
For Swift 2.2 Inscrivez-vous pour une cellule par défaut à partir de la base
self.tableView.registerNib(UINib(nibName: "CustomCellName", bundle: nil), forCellReuseIdentifier: "CustomCellIdentifer")
For Swift 3.0 Inscrivez-vous pour la cellule par défaut de la nib
self.tableView.registerNib(UINib(nibName: "CustomCellName", bundle: nil), forCellReuseIdentifier: "CustomCellName")
Remarque: La cellule créée par Storyboard est appelée cellule prototype et comporte une procédure permettant d’enregistrer une cellule prototype telle que Nib.And n'oubliez pas de définir l’identificateur de cellule comme ci-dessous .
Swift a encore une fois renommé
tableView. register (UITableViewCell.self, forCellReuseIdentifier: "DefaultCell")
Je ne comprends vraiment pas pourquoi ils se sont tellement souciés de cette dénomination
Pour Swift 3, reportez-vous à ceci. Ça marche!
A l'intérieur de votre fonction viewdidload
self.tableView.register (UITableViewCell.self, forCellReuseIdentifier: "LabelCell")
Pour Swift 4
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
Swift 4 et 4.1. en faisant des méthodes génériques, il est très facile d’enregistrer et de retirer de la file le tableau.
override func viewDidLoad() {
super.viewDidLoad()
self.tblView.register(CellProfileOther.self) // cell class name
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CellProfileOther = tableView.dequeueReusableCell(forIndexPath: indexPath)
return cell
}
extension UITableView {
func register<T:UITableViewCell>(_: T.Type) where T: ReusableView, T: NibLoadableView {
let bundle = Bundle(for: T.self)
let nib = UINib(nibName: T.nibName, bundle: bundle)
self.register(nib, forCellReuseIdentifier: T.defaultReuseIdentifier)
}
func dequeueReusableCell<T:UITableViewCell>(forIndexPath indexPath: IndexPath) -> T where T: ReusableView {
guard let cell = self.dequeueReusableCell(withIdentifier: T.defaultReuseIdentifier, for: indexPath) as? T else {
fatalError("Could not dequeue cell with identifier: \(T.defaultReuseIdentifier)")
}
return cell
}
}
protocol ReusableView: class {
static var defaultReuseIdentifier: String { get }
}
protocol NibLoadableView: class {
static var nibName: String { get }
}
extension ReusableView where Self: UIView {
static var defaultReuseIdentifier: String {
return String(describing: Self.self)
}
}
extension NibLoadableView where Self: UIView {
static var nibName: String {
return String(describing: Self.self)
}
}
// Here is cell class
class CellProfileOther: UITableViewCell, ReusableView, NibLoadableView {
}