用百分比更改UIImageView的图像时淡入/淡入
问题描述:
我想将UIImageView图像从一个图像更改为另一个。 但我不希望它完全动画到最后。我只是想让它做一个百分比的解散。结果应该是一个包含两个图像的新图像,例如我会在某个点停止动画并保留结果。用百分比更改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;
不过那时候我也只是改变了形象。我希望它保持一定比例的“合并”。这是否有可能?先谢谢你!
答
此扩展工作对我来说:
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!;
}
}
谢谢!奇迹般有效 –