Tabellenansichtszellen in ios erweitern und reduzieren
Ich habe eine Tabelle anzeigen von benutzerdefinierten Zellen und einige Schaltflächen, die in jeder Zelle.Mit Klick auf die Schaltfläche in der Zelle wird zeigen, eine andere benutzerdefinierte Ansicht unter, die Zelle.Nächsten Klick auf die gleiche Taste Zusammenbruch der Ansicht und müssen diese für alle Zellen gleich.Ich habe versucht, mit der insertrow-Methode auf die Schaltfläche klicken, aber vergeblich.Wie kann ich dies mit Hilfe von nur die Tabelle anzeigen Delegierten.
Dies ist, was ich versucht habe:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"CustomCell_For_Dashboard";
CustomCellFor_Dashboard *customCell = (CustomCellFor_Dashboard *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (customCell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCellFor_Dashboard" owner:self options:nil];
customCell = [nib objectAtIndex:0];
}
[customCell.howyoulfeelBtn addTarget:self action:@selector(buttonclicked:) forControlEvents:UIControlEventTouchUpInside];
customCell.nameLabel.text = @"test";
customCell.imgView.image = [UIImage imageNamed:@"Default.png"];
//customCell.prepTimeLabel.text = [prepTime objectAtIndex:indexPath.row];
return customCell;
}
-(void)buttonclicked:(id)sender{
NSIndexPath *indexPath = [myTable indexPathForCell:sender];
[myTable beginUpdates];
NSIndexPath *insertPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
[myTable insertRowsAtIndexPaths:[NSArray arrayWithObject:insertPath] withRowAnimation:UITableViewRowAnimationTop];
}
kann mir jemand helfen?
InformationsquelleAutor der Frage iOS Developer | 2013-11-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe die gleiche Aufgabe an einem Projekt mit, nur eine Sache anders: Es wurden keine Tasten, nur Tippen Sie auf die Zelle zu erweitern oder zu reduzieren.
Gibt es einige Dinge, die Sie Bearbeiten in Ihrem code. Erstens, die button-Methode code wird wie folgt Aussehen:
Nun die zweite Sache ist
UITableViewDelegate
Methode:Wichtigste hier ist, um zu bestimmen, wenn Ihre Zelle sollte erweitert/reduziert und Rückgaberecht-Höhe der delegate-Methode.
InformationsquelleAutor der Antwort eagle.dan.1349
Geht aus von dem, was @Adler.dan.1349 sagte, dies ist, wie das klicken auf die Zelle. Im storyboard, müssen Sie auch legen Sie die Zelle in der Tabelle, clip-Untersichten, sonst werden die Inhalte ausgeblendet werden, wird sich zeigen.
.h
.m
InformationsquelleAutor der Antwort Kalel Wade
Sah diesen Beitrag und wollte nur meine 2 Cent als meine Lösung ist sehr ähnlich zu der gewählten Antwort (die Erschließung der gesamten Fläche).
Viele Menschen der Architekt dies, indem nur Zellen allein, sondern ich glaube, es ist ein Weg, um dies zu bauen, die möglicherweise eine bessere Anpassung mit was die Leute versuchen zu erreichen:
Gibt es Header und es gibt Zellen. Header sollte antipp -und dann Zellen unter dem Header würde ein-oder ausblenden. Dies kann erreicht werden, indem eine Geste Erkennung der header, und wenn geklickt wird, können Sie einfach entfernen Sie alle Zellen unterhalb des headers (im Abschnitt), und Umgekehrt (add-Zellen). Natürlich, Sie haben, um den Status beizubehalten, der die Kopfzeilen sind "offen" und die Header sind "geschlossen".
Das ist schön, für ein paar Gründe:
Machte ich einen sehr einfache Bibliothek um dies zu erreichen. So lange, wie Sie Ihre Tabelle anzeigen eingerichtet ist, mit UITableView Abschnitt Kopfzeilen und Zellen, alles, was Sie zu tun haben ist eine Unterklasse der tableview und der header.
Link: https://github.com/fuzz-productions/FZAccordionTableView
InformationsquelleAutor der Antwort kgaidis
Ich hatte auch die gleiche situation und meine Lösung war es, eine Taste auf der Oberseite des Abschnitts-Titel mit
viewForHeaderInSection
Methode.noOfRows
legt fest, wie viele Zeilen gibt es in jeder Sektion undbutton.tag
hält die Taste der Ziffer gedrückt wird.Hoffe das wird dir helfen..
InformationsquelleAutor der Antwort Akila Wasala