Wie ändern Sie die textLabel, wenn UITableViewCell ausgewählt ist?
Will ich ändern das textLabel und detailTextLabel einer Zelle, wenn es ausgewählt wurde.
Ich habe versucht, die folgenden, aber keine änderung:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
MyAppDelegate *appDelegate = (MyPhoneAppDelegate*)[[UIApplication sharedApplication] delegate];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.detailTextLabel.text = @"xxxxx";
cell.textLabel.text = @"zzzzz";
[tableView reloadData];
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin damit einverstanden, das Neuladen der Tabelle anzeigen wird eigentlich dump und reload/display alle Zellen mit
tableView:cellForRowAtIndexPath:
und verwenden die ursprünglichen Daten, nicht aktualisiert, @"xxxxx" und @"yyyyy" in IhremtableView:didSelectRowAtIndexPath:
Methode.In einem kleinen test-Projekt war ich in der Lage, ändern Sie die Etiketten auf die Auswahl mit:
Sollten Sie nicht versuchen, neu zu laden den Tisch, während eine Zelle ausgewählt ist. Versuchen Sie stattdessen,
nachdem Sie die oben beschriebenen änderungen an den Etiketten.
Auch, gibt es einen Grund, Sie machen einen Verweis auf das app-delegate in der Methode?
Versuchen, um neu zu laden der Zelle, die Sie ausgewählt (beschrieben durch indexPath) :
Erstellen Sie ein Neues iPad-Projekt (Split View) und Jetzt gehen Sie durch die Klassen->Dateien. Die einfachste Möglichkeit ist schon gegeben. Die XCode Generierte Codes.
Sample Code-Zeilen :-
Können Sie Sie in
cellForRowAtIndexPath ||&& didSelectRowAtIndexPath ..
Nicht sicher, was Sie versuchen zu tun, mit dem delegieren, aber Sie sollten versuchen, ruft der tableView bereits instanziiert; d.h. call
Vielleicht bin ich nicht klar
Was ich damit sagen will ist, dass Sie das instanziieren einer neuen leeren Tabelle anzeigen
erwägen, den Austausch zu nennen, die alte
Haben Sie versuchen, zu aktualisieren, wird nur die ausgewählte Zelle statt Neuladen der gesamten Tabelle ?
[cell setNeedsDisplay];
statt
[tableView reloadData];
Diese haben eine bessere Leistung, und ich bin nicht aber ich nehme an, dass die Auswahl verloren, wenn Sie aktualisieren die gesamte Tabelle (das mag der Grund sein, warum Sie nicht sehen, jede änderung in der Ende)....