1

有很多关于UIImages 使用动画的淡入淡出的帖子。但是我找不到没有动画如何控制交叉淡入淡出,而是我自己;例如,在0.0和之间有一个参数1.0来控制交叉淡入淡出的量。

我可以将两个UIImageViews 放在一起并控制alpha(顶部从1.00.0,底部从 到1.0),但这不是正确的交叉淡入淡出 AFAIK。

为了使它更形象化:屏幕上有一个滑块,它给出了一个介于0.0和之间的值1.0,上面是一个图像。我想要的是在最初显示的图像(当滑块为 时0.0)和另一个图像(如果在滑块为时完全可见)之间交叉淡入淡出1.0。因此,当您慢慢移动滑块时,您会看到另一张图像慢慢出现。

4

3 回答 3

5

您可以使用图像视图alpha方法。这有多正确取决于您正在寻找的效果。使用 0 到 1 之间的值使这种方法相对简单,是显而易见的选择。

您还可以查看将两个图像渲染到上下文中,并使用CGContextSetBlendMode(可能是 with kCGBlendModeMultiply)来组合图像。没有可用的参数,因此您仍然需要更改渲染的 alpha 以获得可接受的合并/淡入淡出。

于 2014-03-17T15:16:35.580 回答
2

如果您使用两个具有清晰背景的 UIImageView 并将 alpha 通道从 0-1、1-0 改变,您应该非常接近您正在寻找的效果。我发现如果它们后面都有黑色背景效果会更好。它可能不是真正的淡入淡出,但对于大多数用途来说已经足够接近了。

于 2014-03-17T16:24:08.403 回答
0

为了实现这一点,我使用了 CATransition 动画:
这是来自旧代码的片段

CATransition *fadeTransition = [CATransition animation];
fadeTransition.duration = 1.0f;
fadeTransition.type = kCATransitionFade;
fadeTransition.endProgress = 0.75;
[imageView setImage:/*YourImage*/];
[imageView.layer addAnimation:fadeTransition forKey:nil];

使用 -endProgress属性,您可以在完成之前设置结束,但我不清楚您想要实现什么。

于 2014-03-17T15:04:06.927 回答