Valeurs de animationWithKeyPath ?

muqaddarmuqaddar Administrateur
11:27 modifié dans Objective-C, Swift, C, C++ #1
Hello world,

Mes débuts avec CoreAnimation...

Pas de problème avec ceci :

CABasicAnimation* pulseAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size.width"];


En revanche, pour le faire en largeur et hauteur, ceci ne produit rien :

CABasicAnimation* pulseAnimation = [CABasicAnimation animationWithKeyPath:@"bounds.size"];


Ne me dites pas que je dois faire 2 animations pour ce cas là  ? (une en largeur et une en hauteur ?)

J'ai trouvé que des exemples avec 2 arguments dans la doc...

Réponses

  • savepandasavepanda Membre
    11:27 modifié #2
    Hellu muqaddar,

    Bien sûr que tu peux modifier la size directement, pour cela tu devras utiliser la méthode
    valueWithCGSize
    
    de la classe NSValue.

    Voici un exemple de code qui devrait t'aider :

    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@&quot;bounds.size&quot;];<br />	<br />[animation setFromValue:[NSValue valueWithCGSize:CGSizeMake(50.0, 50.0)]];<br />[animation setToValue:[NSValue valueWithCGSize:CGSizeMake(200.0, 300.0)]];
    
  • AliGatorAliGator Membre, Modérateur
    11:27 modifié #3
    Tu as essayé juste sur bounds (ou frame et pas bounds.size / frame.size) ?
  • muqaddarmuqaddar Administrateur
    11:27 modifié #4
    @savepanda

    CABasicAnimation *pulseAnimation = [CABasicAnimation animationWithKeyPath:@&quot;bounds.size&quot;];	<br />	pulseAnimation.fromValue = [NSValue valueWithCGSize:CGSizeMake(drawingRect.size.width, drawingRect.size.height)];<br />	pulseAnimation.toValue = [NSValue valueWithCGSize:CGSizeMake(drawingRect.size.width - 30, drawingRect.size.height - 30)];
    


    Super, ça marche nikel ! 

    Je n'utilisais pas NSValue en effet, mais NSNumber :

    pulseAnimation.fromValue = [NSNumber numberWithFloat: aRect.size.width - 20];<br />	pulseAnimation.toValue = [NSNumber numberWithFloat: aRect.size.width];
    


    ce qui ne provoquait rien (mais qui marche pour un width ou height seulement).
Connectez-vous ou Inscrivez-vous pour répondre.