2016-08-09 76 views
0

Ich habe eine UITabBar, dass jede Registerkarte ändert ihre Farbe beim Tippen.Animate TabBar Farbwechsel

Ich möchte es animiert werden (0,5 Sekunden zwischen notSelectedColor to SelectedColor), wie kann ich das tun?

func imageWithColor(color: UIColor) -> UIImage { 
    UIGraphicsBeginImageContextWithOptions(size, false, scale) 

    let context = UIGraphicsGetCurrentContext() 
    CGContextTranslateCTM(context, 0.0, size.height) 
    CGContextScaleCTM(context, 1.0, -1.0) 
    CGContextSetBlendMode(context, CGBlendMode.Normal) 

    let rect = CGRect(origin: CGPointZero, size: size) 
    CGContextClipToMask(context, rect, CGImage) 
    color.setFill() 
    CGContextFillRect(context, rect) 

    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    return newImage 
} 

danke:

ich das Bild mit der Farbe wie das neu zeichnen!

+0

@ChiragPatel I will nur die Farbe animieren, nicht es einen schnelleren Weg? –

Antwort

2

Sie können die Registerkarte Farbe durch folgenden Code animieren:

let tabBar: UITabBar? = self.tabBarController?.tabBar 
     UIView.transitionWithView(tabBar!, duration: 1.0, options: [.BeginFromCurrentState, .TransitionCrossDissolve], animations: { 
      self.tabBarController?.tabBar.tintColor = UIColor.purpleColor() 
      }, completion: nil) 

Ich habe auch ein Beispielprojekt für Sie gemacht. Laden Sie die sample project here herunter.

enter image description here

+0

Vielen Dank! Aber ich möchte, dass es zwischen "TabBar.image" und "TabBar.selectedImage" wechselt, wenn es angetippt wird. Kannst du mir bitte dabei helfen? Vielen Dank! –