Je veux avoir une transition de couleur douce qui traverse tout le spectre (c'est-à-dire rouge, bleu, vert, jaune, orange, etc.)
Vous voulez également pouvoir avoir des transitions douces de couleurs dans un spectre spécifique (c'est-à-dire tous les rouges).
Existe-t-il des algorithmes/fonctions/formules récursives simples qui peuvent aider à simplifier ce processus?
Une façon possible de le faire est d'appliquer une animation de couleur d'arrière-plan sur le calque de la vue.
Maintenant, pour traverser tout le spectre, vous devez travailler sur des combinaisons de trois couleurs.
La meilleure façon d'y parvenir est d'utiliser "Hue".
[[UIColor alloc] initWithHue: 135/360.0f saturation: 1 luminosité: 1 alpha: 1]
Vous devez maintenant itérer pour toutes les valeurs de teinte et vous obtiendrez la transition en douceur qui traverse tout le spectre.
Exemple de code:
int _currentColorHue = 0;
- (vide) animateMyView {
[UIView animateWithDuration:0.01 animations:^{ self.view.layer.backgroundColor = [[UIColor alloc] initWithHue:_currentColorHue/360.0f saturation:1 brightness:1 alpha:1].CGColor; } completion:^(BOOL finished) { _currentColorHue++; if (_currentColorHue > 360) { _currentColorHue = 0; } [self animateMyView]; }]; }
Vous pouvez arrêter l'animation selon votre utilisation.
Une façon très simple d'y parvenir serait d'utiliser un bloc d'animation UIView.
[UIView animateWithDuration:1.0 animations:^{
view.backgroundColor = [UIColor redColor];
}];
Cela interpolera entre la couleur d'arrière-plan précédente de view
et le rouge pendant 1 seconde.
Swift:
UIView.animate(withDuration: 1.0) {
view.backgroundColor = .red
}
Utilisez le code suivant pour la transition des couleurs dans iOS, il vous donne diverses options configurables:
1) Délai avant de démarrer l'animation
2) Rappel à la fin de l'animation
3) Options d'animation
[UIView animateWithDuration:1.0 delay:0.2 options:0 animations:^{
view.backgroundColor = [UIColor greenColor];
} completion:^(BOOL finished)
{
NSLog(@"Color transformation Completed");
}];
Pour une description détaillée des différentes animations, veuillez visiter:
Tutoriel UIView pour iOS: Comment utiliser l'animation UIView