J'essaie d'animer 2 boutons UIButtons dans un UITableViewCell appelés addToPlaylist et removeFromPlayList (ils s'animent vers la droite après avoir été glissés dessus) et j'utilise un bloc comme suit
[UIView animateWithDuration:0.25 animations:^{
self.addToPlaylist.center = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
self.removeFromPlaylist.center = CGPointMake(contentsSize.width + (buttonSize.width / 2), (buttonSize.height / 2));
myImage.alpha = 1.0;
}
completion:^ (BOOL finished)
{
if (finished) {
// Revert image view to original.
NSLog(@"Is completed");
self.addToPlaylist.hidden = YES;
self.removeFromPlaylist.hidden = YES;
self.hasSwipeOpen = NO;
}
}];
sur l'achèvement, je veux cacher les boutons pour tenter de réduire la redéfinition sur le défilement, etc.
Ce code se trouve dans '-(void) swipeOff' qui est appelé dans la méthode de UITableViewControllers scrollViewWillBeginDragging comme suit :
- (void)scrollViewWillBeginDragging:(UIScrollView *) scrollView
{
for (MediaCellView* cell in [self.tableView visibleCells]) {
if (cell.hasSwipeOpen) {
[cell swipeOff];
}
}
}
Le problème est le code d'achèvement, si je le supprime ou si je lui attribue la valeur nil, tout va bien, mais si je l'inclus, j'obtiens un EXC_BAD_ACCESS, même si je l'inclus en commentant tout ou partie des lignes de l'if(finished).
Suis-je en train de l'utiliser de la mauvaise façon ? Toute aide est la bienvenue.
Merci