2017-10-06 5 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

감사합니다! 매력처럼 작동합니다. –