Имам 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