So erhöhen Sie die Beschriftung und die Zellengröße beim Klicken auf eine Schaltfläche in einer TableViewCell.

8

Ich möchte die Zellengröße erweitern, nachdem ich auf seeMoreBtn in der Zelle geklickt habe.

Die Bezeichnung und die Zellen haben unterschiedliche Längen, aber sie sind eine Einschränkung der Etikettengröße.

Wenn ein Status zu groß ist, habe ich ein seeMoreBtn hinzugefügt, nachdem ich auf see more geklickt habe, wird der verbleibende Text unten gezeigt, und dann, wie man die Beschriftung und die Zellengröße erhöht.

%Vor%     
Vivek Sehrawat 23.03.2013, 09:07
quelle

3 Antworten

5

Es wäre besser, wenn Sie die UITableViewCell ableiten und die layoutSubviews verwenden, um sie anzupassen, wenn Sie die Größe der Zelle anpassen.

%Vor%

Behalten Sie ein Array zum Speichern der selectedIndexPaths bei:

%Vor%

Berechnen Sie die Höhe der Zelle:

%Vor%

Initialisiere benutzerdefinierte Zeige mehr TableViewCell:

%Vor%

Schaltfläche Klick Ereignis Methode:

%Vor%

Das gleiche Ereignis wird gegeben, wenn die Zelle ausgewählt ist:

%Vor%

Beispiel Demo-Projektlink

    
Anupdas 23.03.2013, 12:18
quelle
1

Fügen Sie eine Eigenschaft wie folgt hinzu:

%Vor%

Initialisiere es auf ein leeres Array. Implementieren Sie den Delegaten für die Tabellenansicht:

%Vor%

Dann in Vergrößerung:

%Vor%     
danh 23.03.2013 12:06
quelle
0

Nun, die Idee ist, die Zellenhöhe zu ändern, basierend auf einem Wert, den Sie für die Zelle festgelegt haben. Sie können ein NSArray haben, bei dem Sie für alle Zellen nur einen Wert angeben: isExpanded (true oder false).

Erstellen Sie zur Erinnerung ein NSMutableArray, das den Zellenstatus (erweitert oder nicht) speichert:

%Vor%

Initiiere das Array und fülle es mit Nullen für all deine UITableView-Elemente Array. Wenn die Zelle erweitert wird, legen Sie den cellState-ObjektAtIndex-Wert von 0 bis 1 fest (als erweitert markieren).

Laden Sie dann diese Zelle erneut:

%Vor%

und ändern Sie die Funktion - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; , um einen größeren Wert zurückzugeben, wenn die Zelle erweitert wird ...

Das ist es!

    
Lefteris 23.03.2013 12:04
quelle