Изменить цвета подвидов с анимацией?

У меня есть UISlider, и я успешно добавил несколько подвидов в дорожку ползунка. Я хочу изменить цвет подвидов один за другим с помощью анимации. введите здесь описание изображения


person jailani    schedule 29.10.2014    source источник
comment
Вы имели в виду, что у вас есть 3 ползунка в виде комбинации RGB и вы хотите изменить цвет просмотра при изменении ползунка?   -  person Fahim Parkar    schedule 29.10.2014
comment
Нет, у меня есть собственный слайдер, в котором я добавляю небольшие виды в качестве подвида в представлении слайдера. Пожалуйста, обратитесь к снимку экрана. Я хочу изменить цвет с зеленого на чистый цвет и наоборот с анимацией   -  person jailani    schedule 29.10.2014


Ответы (1)


Этот пример может быть полезен для вас, извините, не совсем понял вас в первый раз:

typedef void (^VoidBlock)(void);
@interface ClassName ()

@property (nonatomic, strong)VoidBlock animationBlock;

@end

- (void)runAnimation
{    
    NSArray *views = @[view1, view2, view3];

    __weak LibraryViewController *weak_self = self;
    __block NSInteger currentView = 0;  
    __block NSUInteger colorNumber = 0;
    self.animationBlock = ^{
        [UIView animateWithDuration:1 animations:^{
            if (colorNumber == 0){
                [views[currentView] setBackgroundColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:1]];
            }
            else if (colorNumber == 1){
                [views[currentView] setBackgroundColor:[UIColor colorWithRed:0 green:1 blue:0 alpha:1]];
            }
            else {
                [views[currentView] setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:1 alpha:1]];
            }

        } completion:^(BOOL finished) {
            currentView += 1;
            if (currentView == views.count){
                currentView = 0;                
                colorNumber += 1;
                if (colorNumber == views.count)
                    colorNumber = 0;
            }
            weak_self.animationBlock();
        }];
    };

    self.animationBlock();
}
person mityaika07    schedule 29.10.2014
comment
Извините, вы поняли мое требование? - person jailani; 29.10.2014
comment
Он меняет цвета видов в одном снимке... Задержки нет... На самом деле я хочу, чтобы цвет второго вида изменялся только после изменения первого вида. - person jailani; 29.10.2014
comment
В основном блок завершения вызывается немедленно, хотя я установил продолжительность анимации 1 секунду. - person jailani; 29.10.2014
comment
эмм, это не правильно, я проверил это, и это работает. - person mityaika07; 29.10.2014