IPHONE - появление и исчезновение UIImageView в разное время
-
21-09-2019 - |
Вопрос
Я хотел бы выполнять затухание в UIImageView и из него, используя разное время, скажем, используя следующие параметры:
- t = 0 ...Альфа UIImageView = 0
- t = 0,5 с...Альфа UIImageView = 0.7
- t = 0,7 с...Альфа UIImageView = 0
Возможно ли это сделать с помощью CAAnimation или другого метода?Как это можно сделать?
спасибо за любую помощь!
Решение
Вероятно, вам следует заглянуть в CAKeyframeAnimation.Это позволит вам установить значения для нескольких временных точек.
Другие советы
if (imgDefault.alpha == 0.0) {
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration: 3.0];
[UIView setAnimationDelegate: self];
imgDefault.alpha = 1.0;
[UIView commitAnimations];
}
else {
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration: 3.0];
[UIView setAnimationDelegate: self];
imgDefault.alpha = 0.0;
[UIView commitAnimations];
}
надеюсь, это поможет
В UIView есть setAnimationDidStopSelector:метод, который вы можете использовать.Просто настройте анимацию fade in с помощью блока beginAnimations и установите селектор didStop на другой метод, который содержит только блок анимации fade out.Каждый из этих анимационных блоков может иметь разную продолжительность анимации.
Что- то вроде этого:
[UIView beginAnimations:next context:context];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(fadeOut:finished:context:)];
myView.alpha = 0.7;
[UIView commitAnimations];
-(void)fadeOut:(NSString*)animationID finished:(BOOL)finished context:(void*)context {
[UIView beginAnimations:nil context:context];
[UIView setAnimationDuration:0.2];
myView.alpha = 0.0;
[UIView commitAnimations];
}