Load custom UITableViewCell von Storyboard
Derzeit bin ich mit "auto-layout" mit storyboard Größe dynamisch custom UITableViewCell
's. Alles funktioniert wie es sollte, außer es gibt Speicherverlust beim scrollen.
Ich weiß, das problem ist aus Berufung
[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
von innen
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Meine Frage ist, was wäre der beste Weg, um erstellen Sie eine Referenz-Zelle? So laden Sie eine Zelle aus dem storyboard ohne dequeueReusableCellWithIdentifier
?
Und ist es ok, vielleicht nennen dequeueReusableCellWithIdentifier
aus viewDidLoad
und erstellen Sie eine Referenz-Zelle als eine Eigenschaft?
Brauche ich Referenz-Zelle für die Dimensionierung Zwecke.
Vielen Dank für jede Hilfe.
InformationsquelleAutor Iki | 2014-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Über, wie man erstellen Referenz-Zelle (siehe ursprüngliche Frage), gibt es einige Optionen, wie ich kann finden Sie unter:
erstellen Sie eine benutzerdefinierte Zelle mit XIB, große Artikel hier -> ein link!
erstellen Sie Ihren benutzerdefinierten Zelle im code, zusammen mit Einschränkungen.
erstellen Sie Ihren benutzerdefinierten Zelle im storyboard als Prototyp Zelle
Danke an alle für die Hilfe!
InformationsquelleAutor Iki
Ja, Sie können dies tun. Oder lazy initialisieren Sie die Eigenschaft:
Letzte Nacht hatte ich ein Gespräch mit Tyler Fox (@smileyborg), schuf er ein großartiges Beispiel für das "auto-layout" und "dynamische Tabelle" view height linkund er bestätigte auch, dass mit dequeueReusableCellWithIdentifier außerhalb der cellForRowAtIndexPath wahrscheinlich erstellen Lecks.
Neugierig, warum @smileyborg denkt, dass dieser undicht wird. Meine TLIndexPathTools verwendet diese Methode, um automatisch zu berechnen, Zellenhöhe niemand hat jemals berichtet ein Leck. Und ich habe es gerade getestet. Wenn Sie haben ein Szenario, wo es Lecks, würde ich mag, um einen Blick zu nehmen.
Es ist wahr, dass die Zellen austreten, wenn Sie aus der Warteschlange entfernt und nicht wieder in cellForRowAtIndexPath. Siehe Diskussion zu diesem hier: github.com/caoimghgin/TableViewCellWithAutoLayout/issues/16 Beachten Sie, dass dies wahrscheinlich nicht ein Problem, wenn Sie nur nannte es einmal und dann speichern, die eine Zelle für die spätere Verwendung. Aber wenn Sie dies getan haben eine Anzahl von Zeiten (oder vielleicht Ihre view-controller erstellt & Häufig zerstört), werden Sie sehen, jeder dieser Zellen hängt herum mit einem retain count von 1 und ist somit nie freigegeben.
Yep, ich bin nur entfernen einer pro Zelle-ID und die Wiederverwendung. Ich halte Sie in einem Wörterbuch nach und bekommen Sie aus der Warteschlange entfernt werden ordnungsgemäß zusammen mit dem view-controller. Da dies getan wird, außerhalb des regulären Zelle reuse-Zyklus, würde ich nicht erwarten, dass Sie verworfen werden, aus dem reuse-pool. Vielen Dank für die Klarstellung, was Sie meinte.
InformationsquelleAutor Timothy Moose
Können Sie einfach entfernen Sie die Zelle einmal und speichern Sie die Höhe:
InformationsquelleAutor RaffAl