У меня есть табличное представление, которое поддерживается fetchedResultsController. В ячейках таблицы у меня есть кнопка, которая выполняет мягкое удаление, если это касается представления ... нажмите кнопку, вызывается селектор, который выполняет мягкое удаление, и ... что-то должно произойти (я я много чего пробовал), но ничего из того, что я пробовал, не оживляет анимацию строк Apple.
Я могу выполнять простые анимации строк, например, заставляя их скользить по сторонам (оставляя пустую строку до тех пор, пока я не скажу таблице перезагрузиться, что, в свою очередь, немного раздражает) Это самое близкое, что я пришел:
-(void) completeTask: (id) sender {
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)[[sender superview] superview]];
NSDate *date = [[NSDate alloc] init];
NSManagedObject *task = [self.fetchedResultsController objectAtIndexPath:indexPath];
[task setValue:date forKey:@"complete"];
AppController *ac = [AppController sharedAppController];
NSManagedObjectContext *moc = [ac managedObjectContext];
NSError *error = nil;
if(![moc save:&error]){
NSLog(@"%@ %@",error, [error description]);
exit(-1);
} else {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
CGRect cellFrame = cell.frame;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.35];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(someAnimationDidStop:finished:context:)];
cell.frame = CGRectMake(cellFrame.size.width , cellFrame.origin.y, cellFrame.size.width, cellFrame.size.height);
[UIView commitAnimations];
}
}
-(void) someAnimationDidStop:(NSString *)animationID
finished:(BOOL)finished context:(void *)duration {
NSLog(@"Animation Stopped");
[self fetchResults]; // this guy performs a new fetch and table data reload
}
Я чувствую, что нахожусь на правильном пути, однако я не думаю, что это действительно довольно ответ. Я надеялся, что каким-то образом controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
будет ответом. Я предполагаю, что если мне нужны стандартные анимации Apple, мне нужно будет создать отдельный NSMutableArray, чтобы отслеживать результаты и просто убедиться, что он синхронизирован.
Мысли и мнения?
Спасибо !!!