2017-07-25 1 views
0

Je souhaite animer le nombre de badges sur la barre d'onglets quelque chose comme Bouncing Animation. Est-ce que quelqu'un l'a implémenté avec UITabBarController natif. Je n'utilise aucune classe tierce pour ajouter UITabBarController dans mon projet.Comment animer le comptage des badges de tabbar dans swift

+1

Je ne pense pas que vous pouvez animer la méthode par défaut pour définir le nombre. Vous devrez peut-être créer votre propre vue personnalisée, puis ajouter une animation –

+1

@RakshithNandish a raison, vous avez probablement pour le faire manuellement. Êtes-vous ouvert à utiliser des «pods» pour cela? –

+0

Vous pouvez, je suppose que la conception, il ne devrait pas vous prendre longtemps .. essayez-le. Faites-moi savoir comment ça se passe –

Répondre

2

je fais quelque chose comme ça avant que je vais partager le code avec vous d'abord je crée deux fonctions premier est:

func loopThrowViews(view:UIView){ 
    for subview in (view.subviews){ 
     let type = String(describing: type(of: subview)) 
     print(type) 
     if type == "_UIBadgeView" { 
      print("this is BadgeView") 
      animateView(view: subview) 
     } 
     else { 
      loopThrowViews(view:subview) 
     } 

    } 
} 

cette fonction vue prise et boucle jeter toutes ses sous-vues jusqu'à ce qu'il trouve la Badge Voir alors il est appeler la méthode Animer celui-ci

func animateView(view:UIView){ 
let shakeAnimation = CABasicAnimation(keyPath: "position") 
shakeAnimation.duration = 0.05 
shakeAnimation.repeatCount = 50 
shakeAnimation.autoreverses = true 
shakeAnimation.fromValue = NSValue(cgPoint: CGPoint(x:view.center.x - 10, y:view.center.y)) 
shakeAnimation.toValue = NSValue(cgPoint: CGPoint(x:view.center.x + 10, y:view.center.y)) 
view.layer.add(shakeAnimation, forKey: "position") 
} 

Vous pouvez remplacer le code à cette méthode avec votre propre animation

tout ce dont vous avez besoin est d'appeler cette méthode comme celui-ci à chaque fois que vous voulez animer le badge

loopThrowViews(view: self.tabBarController!.tabBar) 

le résultat sera comme celui-ci

enter image description here

exemple complet ici https://github.com/AliAdam/AnimateTabbarBadgeView

+0

A travaillé parfaitement :) –

+0

vérifier le projet github je crée une extension il suffit de le déposer sur votre projet et d'appeler la méthode comme l'exemple –

+0

Oui j'ai utilisé ce fichier de catégorie pour réaliser l'animation pour le badge. –