右スワイプで UITableViewCell の背景画像を切り替えています。問題は、追加[taskManager reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];
すると一度だけトグルされ、その後トグルされないことです。では、これはなぜですか?これが起こらない理由は何ですか?これがメソッドコード全体です。
- (void)handleSwipeRight:(UISwipeGestureRecognizer *)gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:self.taskManager];
NSIndexPath *indexPath = [self.taskManager indexPathForRowAtPoint:location];
[taskManager reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];
UIImage *notCkDone = [UIImage imageNamed:@"UITableViewCellCheckmark"];
UIImage *isCkDone = [UIImage imageNamed:@"UITableViewCellCheckmarkDone"];
UIImage *notBgDone = [UIImage imageNamed:@"UITableViewCell"];
UIImage *isBgDone = [UIImage imageNamed:@"UITableViewCellDone"];
UITableViewCell *cell = [taskManager cellForRowAtIndexPath:indexPath];
if (indexPath) {
if (cell.imageView.image == notCkDone) {
cell.imageView.image = isCkDone;
cell.backgroundView = [[UIImageView alloc] initWithImage:isBgDone];
} else {
cell.imageView.image = notCkDone;
cell.backgroundView = [[UIImageView alloc] initWithImage:notBgDone];
}
cell.textLabel.textColor = [UIColor colorWithRed:0.0/0.0 green:0.0/0.0 blue:0.0/0.0 alpha:1.0];
}
}