3

我能够成功淡出我的图像。当我尝试将其淡入时,它不会“淡入”......它只是突然回来。我究竟做错了什么?这是我将其淡出并尝试将其淡入的代码:

淡出:

//Fade Out
Image.hidden = NO;
[UIView animateWithDuration:0.5 delay:1.0 options: UIViewAnimationOptionCurveEaseOut animations:^ {Image.alpha = 0;}
completion:^(BOOL finished){Image.hidden = YES;}];

这就是我用来尝试将其淡入的方法;基本上,我正在做相反的事情......为什么它不起作用?

//Fade In
Image.hidden = YES;
[UIView animateWithDuration:0.5 delay:1.0 options: UIViewAnimationOptionCurveEaseIn animations:^ {Image.alpha = 1;}
completion:^(BOOL finished){Image.hidden = NO;}];
4

3 回答 3

6

图像需要在淡入时始终可见。您正在为隐藏图像上的 alpha 属性设置动画,然后在最后显示它。正确的是:

Image.hidden = NO;
[UIView animateWithDuration:0.5 
                      delay:1.0 
                    options:UIViewAnimationOptionCurveEaseIn 
                 animations:^{ Image.alpha = 1; }
                 completion:^(BOOL finished){}
];
于 2013-09-07T21:46:55.077 回答
2

你先隐藏它,所以褪色是不可见的。您需要将 alpha 设置为 0。

image.alpha = 0.0;
image.hidden = NO;
// do the animation to alpha => 1.0;

顺便说一句,您不应该使用大写的变量名。

于 2013-09-07T21:46:50.433 回答
0

这是我认为最短的方法。创建一个 UIView 动画并将其提交到您的 imageView 上。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[myImageView setAlpha:0.0];
[UIView commitAnimations];
于 2014-09-14T20:17:12.197 回答