Ich habe eine UITableViewCell
Unterklasse NameInput
, die eine Verbindung zu einer Xib mit einer benutzerdefinierten init
Methode herstellt.UITableViewCell Unterklasse mit XIB Swift
class NameInput: UITableViewCell {
class func make(label: String, placeholder: String) -> NameInput {
let input = NSBundle.mainBundle().loadNibNamed("NameInput", owner: nil, options: nil)[0] as NameInput
input.label.text = label
input.valueField.placeholder = placeholder
input.valueField.autocapitalizationType = .Words
return input
}
}
Gibt es eine Weise, die ich diese Zelle in der viewDidLoad
Methode initialisieren kann und es immer noch wiederverwenden? Oder muss ich die Klasse selbst mit einer Wiederverwendungskennung registrieren?
Okay, im Grunde habe ich viele verschiedene Nibs mit verschiedenen Unterklassen. Wie würde ich in der Zelle für die Zeile mit der Indexpfadmethode die verschiedenen Unterklassen behandeln? Sie haben jeweils unterschiedliche Felder und dergleichen. – jamespick
Ok, nehmen wir an, Sie haben 50 Zeilen, aber es gibt, sagen wir mal, drei verschiedene Arten von Zellkonfigurationen. Registrieren Sie einfach diese drei NIB/XIBs, jede mit ihrer eigenen Wiederverwendungskennung. Dann würde 'cellForRowAtIndexPath' basierend auf' row' und 'section' von' NSIndexPath' die entsprechende Zellenkennung für den Typ der Zelle aus der Warteschlange entfernen und dann die Felder entsprechend auffüllen. – Rob
FWIW, ich denke eigentlich, dass das Arbeiten mit Zellprototypen in Storyboards etwas einfacher ist. Sie müssen nicht mit verschiedenen NIB-Dateien umgehen und alles ist genau da.Aber benutze, was immer du lieber hast. – Rob