Je suis en train de construire une CABasicAnimation pour animer la propriété backgroundColor d'une CAL Core d'animation de base, mais je n'arrive pas à comprendre comment encapsuler correctement une valeur CGColorRef pour la transmettre à l'animation. Par exemple:Comment animer explicitement la backgroundColor d'une CALayer?
CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();
CGFloat values[4] = {1.0, 0.0, 0.0, 1.0};
CGColorRef red = CGColorCreate(rgbColorspace, values);
CGColorSpaceRelease(rgbColorspace);
CABasicAnimation *selectionAnimation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
[selectionAnimation setDuration:0.5f];
[selectionAnimation setToValue:[NSValue valueWithPointer:red]];
[layer addAnimation:selectionAnimation forKey:@"selectionAnimation"];
semble ne rien faire à la propriété backgroundColor, je suppose que la remise hors tension comme un pointeur enveloppé dans un NSValue est pas la façon de le transmettre. BackgroundColor est une propriété animable de CALayer, donc ma question est: comment définir les valeurs From ou To pour cette propriété particulière (de préférence d'une manière indépendante de la plate-forme Mac/iPhone)?
Sweet. Vous penseriez qu'ils documenteraient le typecast à l'id quelque part. Oui, je pourrais rendre ma vie plus facile avec une animation implicite, mais ça m'embêtait. Pour que cela persiste, tout ce dont vous avez besoin est de définir le fillMode de l'animation sur kCAFillModeForwards et removedOnCompletion sur NO. –
+1 Nice, fonctionne comme un charme! –
Ou vous pouvez économiser du temps et utiliser la bibliothèque Facebook Pop: https://github.com/facebook/pop. Exemples ici: https://github.com/maxmyers/FacebookPop – Benjamin