iOS-плавный переход/анимация изменения цвета
Я хочу иметь плавный переход цвета, который идет по всему спектру (т. е. красный, синий, зеленый, желтый, оранжевый и т. д.)
также хотите иметь плавные переходы цветов в определенном спектре (т. е. все красные).
существуют ли простые алгоритмы рекурсивные функции/формулы, которые могут помочь упростить этот процесс?
3 ответов
один из возможных способов сделать это-применить фоновую цветовую анимацию на слое вида.
теперь, чтобы пройти через весь спектр, вы должны работать над комбинациями из трех цветов.
лучший способ достичь этого-использовать "Hue".
[[UIColor alloc] initWithHue: 135/360.0 f насыщенность:1 яркость:1 альфа:1]
теперь вам нужно выполнить итерацию для всех значений оттенка, и вы получите плавный переход, который проходит через все спектр.
пример кода:
- создать локальную переменную
int _currentColorHue = 0;
- рекурсивный вызов для изменения цвета фона.
- (void)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]; }]; }
вы можете остановить анимацию по использованию.
один очень простой способ сделать это - использовать блок анимации UIView.
[UIView animateWithDuration:1.0 animations:^{
view.backgroundColor = [UIColor redColor];
}];
это будет интерполироваться между любым view
предыдущий цвет фона был, и красный в течение 1 секунды.
Свифт:
UIView.animate(withDuration: 1.0) {
view.backgroundColor = .red
}
используйте следующий код для перехода цвета в iOS, он дает вам различные настраиваемые параметры:
1) задержка перед началом анимации
2) обратный вызов по завершении анимации
3) опции для анимации
[UIView animateWithDuration:1.0 delay:0.2 options:0 animations:^{
view.backgroundColor = [UIColor greenColor];
} completion:^(BOOL finished)
{
NSLog(@"Color transformation Completed");
}];
для подробного описания различных анимаций, пожалуйста, посетите:
учебник UIView для iOS: Как использовать анимацию UIView