Wie ändert man die Höhe einer einzelnen Zelle beim Anklicken?

8

Ich muss eine einzelne Zeile meiner tableView anpassen, wenn ich darauf klicke. Wie kann ich das machen? Kann mir jemand helfen?

Meine View-Controller-Klasse:

%Vor%     
Thiago Santiago 23.07.2014, 18:53
quelle

1 Antwort

31

Zuerst müssen Sie den IndexPfad der aktuell ausgewählten Zelle in einer Eigenschaft verfolgen:

%Vor%

Es sollte optional sein, da Sie keine Zelle ausgewählt haben können. Als Nächstes können Höhen für den ausgewählten und nicht ausgewählten Status deklariert werden (ändern Sie die Werte nach Belieben):

%Vor%

Nun müssen Sie tableView(_:, heightForRowAtIndexPath:) implementieren:

%Vor%

Nun müssen Sie in Ihrer tableView(_:, didSelectRowAtIndexPath:) -Methode überprüfen, ob die ausgewählte Zeile oder eine nicht ausgewählte Zeile angetippt wurde:

%Vor%

Die Aufrufe beginUpdates() und endUpdates() geben Ihnen eine animierte Höhenänderung.

Wenn Sie die Dauer der Höhenänderungsanimation ändern möchten, können Sie die Aufrufe beginUpdates() und endUpdates() in einen Animationsblock UIView.animationWithDuration(...) umbrechen und auf den gewünschten Wert setzen.

Sie können dieses Beispielprojekt ausprobieren, das diesen Code in Aktion zeigt.

    
Kai Engelhardt 23.07.2014, 21:18
quelle

Tags und Links