Fade background-color from one color to another in a UIView

How can I fade from one background color to another color in a UIView?

In javascript (jQuery), this can be done by doing the following:
$('body').animate({ backgroundColor: "#ff00ff"});

Would it be easier if I converted the colors to HSV?

EDIT: Tried to do this with CABasicAnimation, but for unknown reasons it runs white.: /

 CABasicAnimation* fade = [CABasicAnimation animationWithKeyPath:@"backgroundColor"]; fade.fillMode = kCAFillModeForwards; fade.removedOnCompletion = NO; // fade.fromValue = (id)[self.view backgroundColor].CGColor; fade.toValue = (id)[UIColor greenColor].CGColor; [self.view.layer addAnimation:fade forKey:@"fade"]; 

Then I tried to find another way to do this and came across "implicit animation". The following works with good second attenuation:

 [UIView beginAnimations:@"fade" context:nil]; [UIView setAnimationDuration:1]; [[self view] setBackgroundColor: [UIColor greenColor]]; [UIView commitAnimations]; 

Thanks, StackOverflow, for helping everyone learn even more. :)

+5
source share
1 answer

You don’t need to create two UIViews and disappear - why worry about the extra look hanging around when the color attribute itself is animated?

You can use CAAnimation as shown above, but instead of adjusting the opacity of the two views, just adjust the backgroundColor of one.

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Animation_Types_Timing/Articles/PropertyAnimations.html

+1
source

Source: https://habr.com/ru/post/983380/


All Articles