Tôi đang cố gắng xây dựng một CABasicAnimation để tạo hiệu ứng cho thuộc tính backgroundColor của Core Animation CALayer, nhưng tôi không thể tìm ra cách để bọc đúng giá trị CGColorRef để truyền cho hoạt ảnh. Ví dụ:Làm thế nào để bạn tạo hiệu ứng một cách rõ ràng backgroundColor củ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"];
dường như không làm gì với thuộc tính backgroundColor, tôi giả định vì việc chuyển nó thành con trỏ được bao bọc trong NSValue không phải là cách để truyền nó.
backgroundColor là một thuộc tính có thể hoạt hình của CALayer, vì vậy câu hỏi của tôi là: làm cách nào để đặt giá trị Từ hoặc Tới cho thuộc tính cụ thể này (tốt nhất là theo cách độc lập với nền tảng Mac/iPhone)?
Ngọt ngào. Bạn sẽ nghĩ rằng họ sẽ ghi lại bản định kiểu cho id ở đâu đó. Có, tôi có thể làm cho cuộc sống của tôi dễ dàng hơn với một hoạt hình ngầm, nhưng điều này đã làm tôi thất vọng. Để thực hiện điều này, tất cả những gì bạn cần là đặt fillMode của hoạt ảnh thành kCAFillModeForwards và xóaOnCompletion thành NO. –
+1 Đẹp, hoạt động như một sự quyến rũ! –
Hoặc bạn có thể tiết kiệm cho mình rất nhiều thời gian và sử dụng thư viện Facebook Pop: https://github.com/facebook/pop. Ví dụ ở đây: https://github.com/maxmyers/FacebookPop – Benjamin