У меня есть UISlider, и я успешно добавил несколько подвидов в дорожку ползунка. Я хочу изменить цвет подвидов один за другим с помощью анимации.
Изменить цвета подвидов с анимацией?
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
Извините, вы поняли мое требование?
- person jailani; 29.10.2014
Он меняет цвета видов в одном снимке... Задержки нет... На самом деле я хочу, чтобы цвет второго вида изменялся только после изменения первого вида.
- person jailani; 29.10.2014
В основном блок завершения вызывается немедленно, хотя я установил продолжительность анимации 1 секунду.
- person jailani; 29.10.2014
эмм, это не правильно, я проверил это, и это работает.
- person mityaika07; 29.10.2014