UITableViewCell checkmarks
Posted
by burki
on Stack Overflow
See other posts from Stack Overflow
or by burki
Published on 2010-05-10T16:03:59Z
Indexed on
2010/05/10
20:04 UTC
Read the original article
Hit count: 250
Hi! When you select a cell in the UITableView, the
- (void)tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)indexPath
is called. There some of the NSManagedObjects will be updated with the right values and the row will be deselected. Well, it works all right, but you can't see any selection of the tableviewcell. I found out that the access on core data causes the problem, that means, if i comment out the lines with the commands of updating the NSManagedObjects, it all works like I want, with a smooth selection and deselection.
Can anybody help? Thanks.
- (void)tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//[table deselectRowAtIndexPath:indexPath animated:YES];
NSMutableSet *favoriteGroups = [NSMutableSet setWithSet:element.favoriteGroup];
NSMutableSet *elements = [NSMutableSet setWithSet:[(FavoriteGroup *)[fetchedResultsController objectAtIndexPath:indexPath] element]];
UITableViewCell *checkedCell = [table cellForRowAtIndexPath:indexPath];
if (checkedCell.accessoryType == UITableViewCellAccessoryCheckmark) {
[elements removeObject:element];
[favoriteGroups removeObject:[fetchedResultsController objectAtIndexPath:indexPath]];
[[table cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryNone];
} else {
[elements addObject:element];
[favoriteGroups addObject:[fetchedResultsController objectAtIndexPath:indexPath]];
[[table cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
}
element.favoriteGroup = favoriteGroups;
FavoriteGroup *favoriteGroup = [self.fetchedResultsController objectAtIndexPath:indexPath];
favoriteGroup.element = elements;
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
© Stack Overflow or respective owner