Ich möchte eine Tabelle anzeigen, die mehrere Abschnitte hat und zunächst nur 3 Elemente von Abschnitten angezeigt werden. Wenn der Benutzer auf die Abschnittsfußzeile tippt, geht die Abschnittsfußzeile verloren (wird zu Null) und alle Elemente dieses Abschnitts werden dem Benutzer angezeigt.Initially sichtbare Zellen wird unsichtbar nach dem Aufruf von reloadSections: withRowAnimation: Methode
Aus diesem Grund, wenn der Benutzer den Abschnitt Fußzeile tippt, nenne ich unten Code:
-(void)loadMoreRowsInSection:(NSInteger)section {
[groupStates replaceObjectAtIndex:section withObject:[NSNumber numberWithBool:YES]];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:NO];
}
Ich habe den folgenden Code-Abschnitt Fußzeile zeigen oder nicht:
-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
int count = [[(NSDictionary*)[filters objectAtIndex:section] valueForKeyPath:@"values.value"] count];
if (count>3&&![[groupStates objectAtIndex:section] boolValue]) {
LoadMoreFooter* loadMoreFooter = [[LoadMoreFooter alloc] initWithParent:self Section:section];
return [loadMoreFooter view];
}
else return nil;
}
Wenn Benutzer Taps Der Abschnitt footer und die Funktion loadMoreRowsInSection werden aufgerufen, dieser Abschnitt wird neu geladen, aber die aktuellen Zeilen dieses Abschnitts werden ausgeblendet. Wenn ich nach unten blättern gehe und die Reihen aus dem Bildschirm heraus und wieder verschwinden lassen, erscheinen wieder Reihen.
Wenn ich reloadData
anstelle von reloadSections:withRowAnimation:
aufrufen, gibt es kein Problem, aber es scheint keine gute Idee zu sein, die gesamte Tabelle neu zu laden. Außerdem gibt es in reloadTable keine Animation.
Hat jemand dieses Problem festgestellt?
Der zweite Parameter von '-reloadSections: withRowAnimation:' ist kein 'BOOL'; es ist ein 'UITableViewRowAnimation' Typ – user102008