2017-11-26 3 views
0

Ich möchte ...Erweitern/Reduzieren Tableview Zelle mit Show/weniger Taste

table view cell

Nicht hat alle Zellen zusätzliche Werte unten wie dieses Bild aussehen eine Tabellenansicht, etwas zu schaffen, aber alle Zellen Titel Beschreibung . Wenn Sie auf "Details anzeigen" klicken, wird die Zelle mit Animation erweitert. Ich habe folgende Fragen.

  1. Ist es notwendig, 2-Zellen zu entwerfen (eine Zelle für Titel und eine Beschreibung und eine andere für Titel, Beschreibung und zusätzliche Werte)
  2. Wie Zellen zu erweitern, wenn „Details anzeigen“ klicken. Einige Zellen haben nur eine Beschreibung und einige Zellen haben sowohl Beschreibung als auch zusätzliche Werte.
  3. Welche wird effizienter sein? automatische Größenanpassung oder automatisches Layout in diesem Fall.

Jeder Vorschlag wird hilfreich sein.

+0

Mögliche Duplikate von [Erweitern Sie UILabel innerhalb von UITableView mit "mehr" -Schaltfläche wie Instagram] (https://stackoverflow.com/questions/43096231/expand-uilabel-inside-uitableview-with-more-button-like-instagram) – DonMag

Antwort

0

Hier sind die Antworten:

  1. Nein, es ist nicht. Aber ich würde präzisere Antwort sagen, wenn Sie bitte das Design der Zelle zeigen könnten, die den Knopf "Details anzeigen" nicht haben wird. Aber im Grunde würde ich sagen, dass die Regel lautet "Wenn der obere Teil derselbe ist, dann können Sie für beide Zellen den gleichen Entwurf verwenden". Da wirst du nur den unteren Teil der Zelle verstecken. Es wird aufgrund der geringeren Höhe der Zelle versteckt werden. ABER: unter Berücksichtigung, dass Sie es lite machen wollen, wollen Sie vielleicht keinen überflüssigen unteren Teil der Zelle haben, der nichts zu tun hat. So idealerweise ist 2 getrennte Zellen haben, aber Ihre Frage beantworten ist nicht notwendig.

  2. Hier haben Sie 2 Fragen: Wie man den Klick + wie man erweitert. Ich werde 1 zu 1 erklären.

2.1. So prüfen Sie den Klick: Erstellen Sie einen Stellvertreter in der Zellklasse, der Ihrem View-Controller mitteilt, dass die Schaltfläche "Details anzeigen" angetippt wurde, und erweitern Sie dann die Zelle im Ansichtscontroller.

2.2. Verwenden Sie einfach heightForCellAtIndexPath, um die Höhe der Zelle zu regulieren. Wenn es erweitert wird, mach es höher, wenn es nicht kürzer wird. Aber der Hauptpunkt hier ist, dass, wenn die Delegate-Methode aufgerufen wird, müssen Sie tableView.reloadRows(at:) aufrufen, wo Sie die Zelle mit Animation neu laden müssen und es wird die Zelle mit einer netten Animation erweitern. Btw bevorzuge ich .fade Animation.

  1. Ich denke, ich habe diese oben beantwortet, aber bitte lassen Sie mich wissen, wenn es noch nicht klar ist.

Ich hoffe, es hilft.

+0

Soll ich für diesen Zweck automatische Höhenberechnungen verwenden oder die eigene Zellenhöhe berechnen? –

+0

@WAHIDMARUF Es wäre vorzuziehen, die automatische Höhe zu verwenden und die Zelle anhand der automatischen Layoutbeschränkungen neu berechnen zu lassen.Sowie Sie die Tabellenansichten beginUpdates und endUpdates verwenden können, um die Zellenhöhenänderung zu animieren, werfen Sie einfach einen Blick auf die Dokumentation dafür :) –

+0

eine kleine Frage, können Sie mir bitte sagen, sollte ich Label oder Text verwenden View for "extra Werte mit Wert 1, Wert 2, Wert 3 "Teil? Ich muss Attribute dafür verwenden. Aber was wird dafür effizienter sein? –