Ich versuche herauszufinden, wie man das einstellt, UITableViewCellStyle
wenn man die neuen Methoden in iOS 6 verwendet UITableView
.
Früher habe UITableViewCell
ich beim Erstellen eines die UITableViewCellStyle
Aufzählung geändert , um beim Aufrufen verschiedene Arten von Standardzellen zu erstellen, initWithStyle:
aber soweit ich das beurteilen kann, ist dies nicht mehr der Fall.
Die Apple-Dokumentation für UITableView
Staaten:
Rückgabewert : Ein UITableViewCell-Objekt mit der zugehörigen Wiederverwendungskennung. Diese Methode gibt immer eine gültige Zelle zurück.
Diskussion : Aus Leistungsgründen sollte die Datenquelle einer Tabellenansicht UITableViewCell-Objekte im Allgemeinen wiederverwenden, wenn sie Zellen in ihrer tableView: cellForRowAtIndexPath: -Methode Zellen zuweist. Eine Tabellenansicht verwaltet eine Warteschlange oder Liste von UITableViewCell-Objekten, die die Datenquelle zur Wiederverwendung markiert hat. Rufen Sie diese Methode von Ihrem Datenquellenobjekt aus auf, wenn Sie aufgefordert werden, eine neue Zelle für die Tabellenansicht bereitzustellen. Diese Methode entfernt eine vorhandene Zelle aus der Warteschlange, wenn eine verfügbar ist, oder erstellt eine neue Zelle basierend auf der zuvor registrierten Klassen- oder NIB-Datei.
Wichtig : Sie müssen eine Klassen- oder NIB-Datei mit der Methode registerNib: forCellReuseIdentifier: oder registerClass: forCellReuseIdentifier: registrieren, bevor Sie diese Methode aufrufen.
Wenn Sie eine Klasse für den angegebenen Bezeichner registriert haben und eine neue Zelle erstellt werden muss, initialisiert diese Methode die Zelle durch Aufrufen ihrer Methode initWithStyle: reuseIdentifier :. Bei nib-basierten Zellen lädt diese Methode das Zellenobjekt aus der bereitgestellten nib-Datei. Wenn eine vorhandene Zelle zur Wiederverwendung verfügbar war, ruft diese Methode stattdessen die prepareForReuse-Methode der Zelle auf.
So sieht mein neues cellForRowAtIndexPath
nach der Implementierung der neuen Methoden aus:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell_identifier";
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
}
Der Code, den ich bisher habe, funktioniert einwandfrei, gibt aber immer den Standardstil zurück. Wie kann ich das ändern , damit ich Zellen mit den anderen Stilen wie schaffen kann UITableViewCellStyleDefault
, UITableViewCellStyleValue1
, UITableViewCellStyleValue2
und UITableViewCellStyleSubtitle
?
Ich möchte keine Unterklasse erstellen UITableViewCell
, sondern nur den Standardtyp ändern, wie ich es vor iOS 6 tun konnte. Es scheint seltsam, dass Apple erweiterte Methoden bereitstellt, jedoch mit minimaler Dokumentation, um deren Implementierung zu unterstützen.
Hat jemand dies gemeistert oder ist er auf ein ähnliches Problem gestoßen? Ich habe Mühe, überhaupt vernünftige Informationen zu finden.
UITableViewCell
, um die anderen Standardstile zu erhalten, ist ein Problem, da nur unnötige Dateien erstellt werden. Vielen Dank für Ihren Kommentar und die Bestätigung meines Verdachts.