Hallo Zusammen,
ich habe einen TableViewController, bei dem der Nutzer die Reihenfolge der Einträge per drag and drop ändern kann. Das funktioniert ganz hervorragend mit:
Jetzte möchte ich jedoch, dass das oberste Objekt eine "1." vor dem eigentlichen Bezeichner anzeigt und das n-te Objekte halt z.B. "6."
Hierzu ergänzte ich am Ende der Methode moveRowAtIndexPath:
Leider geht cell.textLabel.text = ... total schief, da mir [self.tableView cellForRowAtIndexPath:newPath]; die Reihenfolge vor der Sortierung zurückgibt.
Was mache ich falsch bzw. wo ist mein Denkfehler?
Vielen Dank.
ich habe einen TableViewController, bei dem der Nutzer die Reihenfolge der Einträge per drag and drop ändern kann. Das funktioniert ganz hervorragend mit:
Quellcode
- - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
- NSInteger sourceRow = fromIndexPath.row;
- NSInteger destRow = toIndexPath.row;
- Criterion *changedCriterion = [self.decision.criterionArray objectAtIndex:sourceRow];
- [self.decision.criterionArray removeObjectAtIndex:sourceRow];
- [self.decision.criterionArray insertObject:changedCriterion atIndex:destRow];
- }
Jetzte möchte ich jedoch, dass das oberste Objekt eine "1." vor dem eigentlichen Bezeichner anzeigt und das n-te Objekte halt z.B. "6."
Hierzu ergänzte ich am Ende der Methode moveRowAtIndexPath:
Quellcode
- for (int i=0; i < [self.decision.criterionArray count]; i++) {
- NSIndexPath *newPath = [NSIndexPath indexPathForRow:i inSection:0];
- UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:newPath];
- Criterion *criterion = [self.decision.criterionArray objectAtIndex:i];
- criterion.priotity = [self.decision.criterionArray count]-newPath.row;
- criterion.showPriotity = newPath.row+1;
- cell.textLabel.text = [NSString stringWithFormat:@"%i. %@", criterion.showPriotity, criterion.name];
- }
Leider geht cell.textLabel.text = ... total schief, da mir [self.tableView cellForRowAtIndexPath:newPath]; die Reihenfolge vor der Sortierung zurückgibt.
Was mache ich falsch bzw. wo ist mein Denkfehler?
Vielen Dank.