2016-06-06 14 views
0

Ich habe eine Reihe von PNG-Dateien als ein Array von UIImagages geladen und möchte sie animieren. Die Idee ist, dass die PNGs etwas undurchsichtig sind und ich möchte sie animieren, den Hintergrund durch die transparenten Kanäle zu zeigen. Wenn ich das UIImageView Alpha auf 0 setze (um den Hintergrund durch zu zeigen), ist das Standardverhalten das UIImageView multipliziert das Alpha seines Hintergrunds mit dem UIImage, so dass ich jetzt den festen Teil der Animation als etwas transparenter habend, sicher gibt es a Möglichkeit, dieses Alpha-Blending-Verhalten umzukehren, wenn nicht sogar ein spektakuläres Versehen von Äpfeln. Die Grundlage der Animation ist sicherlich die Überlagerung von bewegten Bildern über den Hintergrund?Stop Alpha Blending auf UIImageView Animation

var images : [UIImage] = [UIImage]() 
    var i = 0 
    for i = 0; i < 32; i += 1 { 
     let image = UIImage(named: "boost_\(i)") 
     images.append(image!) 
    } 
    imageView.alpha = 0 
    imageView.animationImages = images 
    imageView.animationDuration = 1 
    imageView.animationRepeatCount = 1 
    imageView.startAnimating  

enter image description here

der gelbe Teil des Bildes/Animation sollte

Antwort

0

Sie fest sein etwas wie folgt verwenden:

  let transition = CATransition() 

      transition.duration = 0.5 
      transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut) 
      transition.type = kCATransitionFade 

      self.imageView.layer.addAnimation(transition, forKey: nil) 

UPDATE (mehrere Bilder Animate):

Dieser Code funktioniert perfekt:

let timer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: #selector(changeImages), userInfo: nil, repeats: true) 
     timer.fire() 


func changeImages() { 

     if currentIndex == 4 { 
      currentIndex = 0 
     } 
     let image = arrayImages[currentIndex] 

     imageView.image = UIImage(named: image) 
     let transition = CATransition() 

     transition.duration = 1 
     transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut) 
     transition.type = kCATransitionFade 

     imageView.layer.addAnimation(transition, forKey: nil) 

     currentIndex += 1 
} 
+0

schien nicht zu funktionieren, wo würde ich das Bild-Array in Ihrem Code-Snippet enthalten? – Md1079

+0

Wie möchten Sie die Bilder animieren? In einem Timer oder Scroll? –

+0

Timer, ich habe 31 Bilder für 1 Sekunde Animation – Md1079

1

Sie brauchen keine Alpha auf UIImageView auf 0 nur, um den Hintergrund des Bildes Blick transparent machen.

imageView.backgroundColor = UIColor. clearColor() 
imageView.opaque = NO 
+0

Immer noch das selbe Problem leider – Md1079

0

So war das Problem gar nicht der Imageview, es sind die, dass ich ein UIView unter dem Imageview hatte (auf dem Viewcontroller), die einen Alpha-Wert hatte, und das irgendwie auf weitergegeben wurde seine Übersichten. Anstelle von Alpha habe ich verwendet:

UIView.backgroundColor = UIColor(white: 0, alpha 0.85) 

und es schien das Problem zu lösen.