Kein Indexpfad für die Tabellenzelle wird wiederverwendet
Dieser begann zu geschehen, aus heiterem Himmel. Irgendwelche Ideen: Code:
CUSTOM (ich habe ersetzt die tatsächliche Klasse name enthält den Namen des Clients).
Initialisierung meinem tableView:
[self.tableView registerClass:[CUSTOMCLASSNAME class] forCellReuseIdentifier:[self reuseIdentifier]];
In der Zelle für Zeile:
Hallo, der Titel ist gedruckt in der Konsole. Dies ist mein cellForRow:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
AVTCheckListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[self reuseIdentifier] forIndexPath:indexPath];
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
- (void)configureCell:(AVTCheckListTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
ChecklistGroup *group = [self.checklistFetchedResultsController.fetchedObjects objectAtIndex:indexPath.section];
ChecklistItem *item = [self getChecklistItemForIndexPath:indexPath];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[[cell cellTextView] setAttributedText:[[item checked] boolValue] ? [[NSAttributedString alloc] initWithString:[item name] attributes:@{ NSStrikethroughStyleAttributeName : @(NSUnderlineStyleSingle) } ] : [[NSAttributedString alloc] initWithString:[item name]]];
[[cell cellTextView] setUserInteractionEnabled:[[group isUserDefined] boolValue]];
[[cell cellTextView] setTag:indexPath.row];
[[cell cellTextView] setDelegate:self];
[[cell tickImage] setHidden:![[item checked] boolValue]];
}
//Method that returns re-use:
- (NSString *) reuseIdentifier {
return @"CheckListTableView";
}
InformationsquelleAutor der Frage CW0007007 | 2013-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zurück
[cell contentView]
stattcell
austableView:viewForHeaderInSection:
EDIT: Das irgendwie führte zum Absturz auf long-press-gesten auf UI-Schaltflächen. Um das zu beheben, gab ich auf und verwendet eine andere Sektion mit einem einzigen Element wie ein fake Abschnitt header.
InformationsquelleAutor der Antwort TalkLittle
Fand ich diese Warnung bei meinem
viewForHeaderInSection
Umsetzung.Dies ist meine Lösung in Swift 2.x:
Dies ist die Swift 3 version:
InformationsquelleAutor der Antwort Alessandro Ornano
Habe ich nur aufgespürt werden, eine Ursache für diese Fehlermeldung.
Einen
UITableViewCell
verwendet wurde, die wie eine normale Ansicht. Daher seine'indexPath
war nicht gesetzt. In unserem Fall wurde zurückgegebenviewForHeaderInSection
:Hoffe, das hilft.
Chris
InformationsquelleAutor der Antwort chrisoneiota
In meinem Fall, dieser Fehler wurde vorgestellt, nur auf dem iPhone (nicht iPad), denn ich hatte platziert
[self.tableView beginUpdates];
und später[self.tableView endUpdates];
innen[UIView transitionWithView:duration:options:animations:compeletion];
. Zu beheben, die ich gerade entfernt begin/end-updates, wie ich am günstigsten gelegene einem fading-animation anstelle von fading plus animieren Zelle Höhe ändert.InformationsquelleAutor der Antwort Joey
Arbeitete ich diese nach ein paar Tagen. In meine eigene Zelle hatte ich eine textView, wenn ich das hinzufügen es zu den contentView ich war, dies zu tun:
War dies die Ursache des Problems; incase jemand hat ein ähnliches problem.
Viel Spaß beim Programmieren 🙂
InformationsquelleAutor der Antwort CW0007007
Wenn Sie die Zelle für die Kopfzeile anzeigen im Abschnitt header, die Sie haben, um es in den container und dann wieder der container-Ansicht um zu verhindern, dass "keine index-Pfad für die Tabelle Zelle wiederverwendet". Der Beispielcode weiter unten).
InformationsquelleAutor der Antwort Kit
Gut, ich habe gerade den besseren Teil von einem Tag versuchen, um dies herauszufinden, so dass hoffentlich diese alternative Erklärung spart jemand anders einige Zeit.
Hatte ich eine tableview, die geben wurde diese Meldung manchmal, beim laden. Es stellte sich heraus, verursacht durch die KVO-Benachrichtigungen für Core Data Objekte feuern, während Sie die Aussicht war laden. (Auf der Beobachtung einer Veränderung, mein controller ausprobiert genannt reloadData auf der tableview in Frage. Feste nicht durch die Beobachtung der Objekte, bis die Anzeige vollständig geladen war, wurde (zuvor ich begann zu beobachten, das Objekt, sobald es zugeordnet war, über den accessor)
TLDR: Überprüfen Sie, um zu sehen, wenn Sie versuchen, laden Sie Ihre Daten von etwas anderem als dem Haupt-thread.
SOGAR NOCH BESSER:
Dies ist ein problem, dass Sie nicht ausführen, wenn Sie (wie ich entdeckt haben, Sie sollten wirklich) verwenden Kind verwalteten Objekts zusammenhängen und nur änderungen wieder, die in Ihrer Haupt-MOC auf dem Haupt-thread zu vernünftigen Zeiten.
InformationsquelleAutor der Antwort Jonathan Zhan
Hatte ich Probleme mit der Rückgabe einer
UITableViewCell
imtableView:viewForHeaderInSection
aber wieder[cell contentView]
Folge hatte, dass alle Schaltflächen innerhalb der Zelle zu Abstürzen, und das festlegen einer Ansicht wrapper um die Zelle schien verschwenderisch. Stattdessen wechselte ich meineUITableViewCell
KlasseUITableViewHeaderFooterView
und es funktionierte wie ein Charme!Wenn Sie dieses Problem:
Nur daran erinnern, um die Hintergrundfarbe zu ändern an Ihrer Spitze zum Standard.
InformationsquelleAutor der Antwort SuperChoob
Ich hatte das gleiche Problem. Diese Meldung erscheint, wenn ich Blättern und Zellen wiederverwendet werden.
Viele Antworten gesprochen viewForHeaderInSection aber ich wollte Sie nicht benutzen. Falls jemand das ähnliche problem, das ich hiermit zeigen, dass meine Lösung.
Fügte ich hinzu Beobachter zu den Feldern im inneren jeder Zelle. Ich Frage mich, ob dies der Beobachter, die verursacht dieses Problem, da ich nicht entfernen Sie die Beobachter, wenn eine Zelle recycelt werden kann.
So entfernte ich die observer wenn eine Zelle deinited.
Es scheint, das problem ist gelöst. Kann ich nicht garantieren.
InformationsquelleAutor der Antwort Clarke Xun Gong
Half es mir in swift 2.1
InformationsquelleAutor der Antwort Jitendra
Habe ich den gleichen Fehler, aber aus einem anderen Grund.
Hatte ich eine custom UITableViewCell, die festlegen, für die UITextField zu becomeFirstResponder. Der Fehler trat auf, wenn mehr als eine Instanz der benutzerdefinierten Zelle wurde zurückgegeben.
Ich einfach nur die erste Instanz der benutzerdefinierten Zelle zu becomeFirstResponder und es das Problem behoben hat.
InformationsquelleAutor der Antwort GrindItOut
In meinem Fall (ziemlich dumme), habe ich die
if let
syntax innerhalbcellForRowAt
so:Wie Sie sehen können, ich kehrte ich generischen carTableViewCell(), und das ist es, was mir diesen abscheulichen Fehler...
Ich hoffe, es wird immer jemand helfen haha (:
Happy Coding!
InformationsquelleAutor der Antwort Gal Shahar
können Sie versuchen, die folgenden (vorausgesetzt, Sie haben keine spezielle Konfiguration für eine Zelle an, dass indexpath) :-
Bitte auch posten welche Fehler sind Sie immer, wenn die oben nicht funktioniert.
Haben auch einen Blick auf den folgenden link:-
Was ist die Bedeutung von "keine index-Pfad für die Tabelle Zelle wiederverwendet" message in iOS 6/7?
InformationsquelleAutor der Antwort Max