Alors, je l'ai lu dans la documentation, que l'utilisation de blocs commeCABasicAnimation Problème
beginAnimation
commitAnimation
est déconseillé de os4.0.
J'ai donc essayé de faire fonctionner mon code en utilisant CABasicAnimation. Je veux réaliser, que l'image d'une image est redimensionnée à partir de sa taille de vignette, quelque part dans ma vue, à une position pleine largeur, par exemple. (0, 120, 320, 240) - sur mon iPhone.
Ce que j'ai jusqu'à présent:
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:1.0] forKey:kCATransactionAnimationDuration];
CABasicAnimation *scalingAnimation;
scalingAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
scalingAnimation.duration=1.0/2;
scalingAnimation.autoreverses=YES;
scalingAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
scalingAnimation.fromValue=[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)];
scalingAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeScale(4, 4, 1)];
[b.layer addAnimation:scalingAnimation forKey:@"scaling"];
[CATransaction commit];
Mon nextstep serait d'abord essayer de déplacer l'image vers une position centrée échelle puis à la bonne taille. Cependant, je doute que je le fasse de la bonne façon. Quelqu'un peut-il commenter mon code/approche ... y a-t-il un meilleur moyen?
Merci pour ce Richard. Une note, assurez-vous que si vous copiez et passez ce code, vous modifiez cette ligne: CABasicAnimation * scaleY = [CABasicAnimation animationWithKeyPath: @ "transform.scale.x"]; dire "transform.scale.y" – DoctorG
@Doctor: Correction de cela pour lui. ;) –