Ich versuche, eine CABasicAnimation zu erstellen, um die backgroundColor-Eigenschaft eines Core Animation CALayer zu animieren, aber ich kann nicht herausfinden, wie man einen CGColorRef-Wert richtig umwandelt, um ihn an die Animation zu übergeben. Zum Beispiel:Wie animiert man explizit die BackgroundColor eines CALayers?
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"];
nichts auf die Eigenschaft Backgroundcolor zu tun scheint, gehe ich davon aus, weil es aus als Zeiger Gabe in einem NSValue eingewickelt ist nicht der Weg, es passieren entlang.
backgroundColor ist eine animierbare Eigenschaft von CALayer, also lautet meine Frage: Wie setzt man die From- oder To-Werte für diese spezielle Eigenschaft (vorzugsweise auf einer Mac/iPhone-unabhängigen Plattform)?
Süß. Sie würden denken, dass sie die Typumwandlung dokumentieren würden, um sie irgendwo zu identifizieren. Ja, ich könnte mein Leben mit einer impliziten Animation einfacher machen, aber das nervte mich. Um dies dauerhaft zu machen, müssen Sie nur den fillMode der Animation auf kCAFillModeForwards und removeOnCompletion auf NO setzen. –
+1 Schön, funktioniert wie ein Charme! –
Oder Sie sparen sich viel Zeit und nutzen die Facebook Pop-Bibliothek: https://github.com/facebook/pop. Beispiele hier: https://github.com/maxmyers/FacebookPop – Benjamin