Conozco a un montón de personas que han hecho la misma pregunta, pero ninguna de las soluciones propuestas parece relevante, por lo que estoy pidiendo una vez más: tengo el siguiente bloque de código:animateWithDuration completa inmediatamente
UIImageView *moneyHolder = [[UIImageView alloc] initWithImage:moneyImage];
if([paymentMethod.viewed intValue] == 0){
//CGRect targetFrame = CGRectMake(0, cell.frame.size.height/2-3, cell.frame.size.width, targetHeight);
CGRect targetFrame = moneyHolder.frame;
targetFrame.origin.y = cell.frame.size.height/2-3;
NSLog(@"animating");
[UIView animateWithDuration:2
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
moneyHolder.frame = targetFrame;
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
}
Lo que PENSARÍA debería animar mi marco de MoneyHolder. Desafortunadamente, esto parece suceder inmediatamente en lugar de hacerlo con una duración de 2 segundos. Puedo verificar esto con marcas de tiempo de mi registro:
2012-05-11 03: 41: 50.102 AgilePoet [5824: 15203] animación
2012-05-11 03: 41: 50.116 AgilePoet [5824: 15203] Hecho
¿Alguien tiene alguna idea sobre por qué esto podría estar pasando? Todas las demás preguntas sobre el tema se centraron en que la propiedad no es animable, pero sé que un marco de vista de imagen es animado. Lo único que puedo pensar es que este código está escrito en mi
-tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath method.
¡Gracias de antemano!
Es bueno ver que tiene una teoría sobre lo que podría estar causando el problema. ¿Puedes probarlo copiando temporalmente el código de la animación en otro lugar y ver si se comporta como esperas allí? –
Bueno, moví el código fuera del método willDisplayCell y funcionó ... ¿Alguien sabe por qué no funcionaría desde dentro willDisplayCell? – akhalsa
Supongo que el código de dibujo de willDisplayCell llama a removeAllAnimations en la capa de la celda, lo que termina su animación prematuramente. –