UILabel properties cannot be easy animated due to some various reasons, so code like this will have no effect on it:
self.someLabel.textColor = [UIColor blueColor];
[UIView animateWithDuration:0.3
animation:^{
self.someLabel.textColor = [UIColor redColor];
}];
But there is a simple solution. Instead of animating property we will perform transition on object itself.
Using transitionWithView should solve our problem:
self.someLabel.textColor = [UIColor blueColor];
[UIView transitionWithView:self.someLabel
duration:0.3
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
self.someLabel.textColor = [UIColor redColor];
} completion:nil];
This creates nice fade in/out animation which is exactly what we want.