我想使用不同的时间淡入和淡出 UIImageView,比如说,使用以下参数:
- t = 0 ... UIImageView 的 alpha = 0
- t = 0.5s ... UIImageView 的 alpha = 0.7
- t = 0.7s ... UIImageView 的 alpha = 0
这可能与 CAAnimation 或其他方法有关吗?怎么可能呢?
谢谢你的帮助!
我想使用不同的时间淡入和淡出 UIImageView,比如说,使用以下参数:
这可能与 CAAnimation 或其他方法有关吗?怎么可能呢?
谢谢你的帮助!
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];
}
希望能帮助到你
您可能应该查看 CAKeyframeAnimation。它可以让您设置多个时间点的值。
UIView 有一个 setAnimationDidStopSelector: 可以使用的方法。只需使用 beginAnimations 块设置您的淡入动画,并将 didStop 选择器设置为另一个仅包含淡出动画块的方法。这些动画块中的每一个都可以有不同的动画持续时间。
像这样的东西:
[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];
}