Próbuję skonstruować animację CABasic, aby animować właściwość backgroundColor obiektu Core Animation CALayer, ale nie wiem, jak prawidłowo zawinąć wartość CGColorRef, aby przekazać animację. Na przykład:W jaki sposób jawnie animujesz kolor tła 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"];
wydaje się zrobić nic do nieruchomości backgroundColor, zakładam, ponieważ przekazanie go jako wskaźnik zawinięte w NSValue nie jest sposób przekazać ją wzdłuż.
backgroundColor to animowalna własność CALayera, więc moje pytanie brzmi: jak ustawić wartości From lub To dla tej konkretnej właściwości (najlepiej w niezależny od platformy Mac/iPhone sposób)?
Słodki. Można by pomyśleć, że gdzieś dokumentują typecast na id. Tak, mógłbym ułatwić sobie życie dzięki niejawnej animacji, ale to mnie wkurzyło. Aby to się udało, wystarczy ustawić właściwość fillMode animacji na kCAFillModeForwards i removedOnCompletion na NIE. –
+1 Miło, działa jak urok! –
Możesz też zaoszczędzić mnóstwo czasu i skorzystać z biblioteki Pop na Facebooku: https://github.com/facebook/pop. Przykłady tutaj: https://github.com/maxmyers/FacebookPop – Benjamin