2017-10-06 38 views
1

我想將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; 

不過那時候我也只是改變了形象。我希望它保持一定比例的「合併」。這是否有可能?先謝謝你!

回答

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!; 
    } 
} 
+0

謝謝!奇蹟般有效 –