【问题标题】:Fade/dissolve when changing UIImageView's image with percentage使用百分比更改 UIImageView 图像时淡化/溶解
【发布时间】:2018-03-17 22:51:30
【问题描述】:

我想将 UIImageView 图像从一个图像更改为另一个图像。 但我不希望它完全动画到最后。我只希望它进行一定百分比的溶解。 结果应该是包含两个图像的新图像,就像我会在某个时候停止动画并保留结果一样。

我知道这会从头到尾完成所有动画:

CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade;
transition.delegate = self;
[self.view.layer addAnimation:transition forKey:nil];
view1.hidden = YES;
view2.hidden = NO;

但是我刚刚更改了图像。我希望它以一定的百分比保持“合并”。这有可能吗?提前谢谢!

【问题讨论】:

    标签: ios swift uiimageview


    【解决方案1】:

    这个扩展对我有用:

    extension UIImage {
        static func mergeImage(imageA: UIImage, imageB:UIImage, percentage: CGFloat) -> UIImage{
    
            UIGraphicsBeginImageContextWithOptions(imageA.size, false, 0.0)
    
            imageA.draw(at: CGPoint(x: 0, y: 0), blendMode: .normal, alpha: 1-percentage)
    
            imageB.draw(at: CGPoint(x: 0, y: 0), blendMode: .normal, alpha: percentage)
    
            let mergedImage = UIGraphicsGetImageFromCurrentImageContext();
    
            UIGraphicsEndImageContext();
    
            return mergedImage!;
        }
    }
    

    【讨论】:

    • 谢谢!像魅力一样工作
    猜你喜欢
    • 2011-11-30
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多