0

我想创建一个动画,imageView 会变得越来越小和透明,然后消失。我尝试了下面的代码,它不起作用,运行时它会从 0.01 大小增长到原始大小。我无法弄清楚问题出在哪里。

非常感谢你!

[UIView animationWithDuration:2 animations:^{
[imageview setTransform:(CGAffineTransformMakeScale(0.01,0.01))];
[imageview setAlpha:0];
}
completion:^(BOOL finished){
[imageview removeFromSuperview];
}];
4

2 回答 2

0

试试这个代码:

[UIView animationWithDuration:2 animations:^{
CGAffineTransform *transform =  CGAffineTransformScale(imageView.transform, 0.01, 0.01);
[imageview setTransform:transform];
[imageview setAlpha:0];
}
completion:^(BOOL finished){
[imageview removeFromSuperview];
}];

这将考虑现有的 imageView 转换。(您是否有可能已经对这个 imageView 应用了转换?)

您可以尝试的另一件事是添加:UIViewAnimationOptionBeginFromCurrentState 作为动画方法的选项。您将不得不使用:

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion{

}
于 2012-12-21T08:06:31.553 回答
0

实际上,您的方法名称似乎不正确。正确的方法是animateWithDuration

[UIView animateWithDuration:2 animations:^{
于 2012-12-21T08:31:55.680 回答