有许多关于UIImage
使用动画的交叉淡入淡出的帖子。但我找不到如何控制交叉渐变没有动画,而是我自己;例如,0.0
和1.0
之间的参数控制交叉淡入淡出量。
我可以将两个UIImageView
放在一起,控制alpha
(从1.0
到0.0
的最上面一个,1.0
的最后一个}),但这不是一个正确的交叉淡化AFAIK。
使其更具图形:在屏幕上有一个滑块,其值介于0.0
和1.0
之间,上面是一个图像。我想要的是在最初显示的图像(当滑块是0.0
)和另一个图像(如果滑块是1.0
时完全可见时)之间交叉淡入淡出。因此,当您慢慢移动滑块时,您会看到另一个图像慢慢显示。
答案 0 :(得分:5)
您可以使用图片查看alpha
方法。这是多么正确取决于您正在寻找的效果。使用0到1之间的值使这种方法相对简单,是显而易见的选择。
您还可以查看将两个图像渲染到上下文中并使用CGContextSetBlendMode
(可能还有kCGBlendModeMultiply
)来合并图像。没有参数可供使用,因此您仍需要更改渲染的alpha以获得可接受的合并/淡入淡出。
答案 1 :(得分:2)
如果您使用两个具有清晰背景的UIImageView并改变0-1,1-0的alpha通道,您应该非常接近您正在寻找的效果。如果它们背后都有黑色背景,我发现效果会更好。它可能不是真正的交叉淡化,但对于大多数用途而言足够接近。
答案 2 :(得分: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
属性,您可以在完成之前设置结束,但我不清楚您想要实现的目标。