[Résolu] Badge à l'intérieur de l'application
Bonsoir,
Pour les besoins de mon app j'ai besoin de mettre un badge de notification sur une image comme l'app facebook qui indique le nombre de messages non lu, vous voyez de quoi je parle???
J'ai fait une recherche sur internet mais je trouve que des explications pour les notifications hors de l'app.
Donc si vous avez des liens vers des tutos ou exemples de codes je suis preneur.
Merci d'avance.......
Pour les besoins de mon app j'ai besoin de mettre un badge de notification sur une image comme l'app facebook qui indique le nombre de messages non lu, vous voyez de quoi je parle???
J'ai fait une recherche sur internet mais je trouve que des explications pour les notifications hors de l'app.
Donc si vous avez des liens vers des tutos ou exemples de codes je suis preneur.
Merci d'avance.......
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce que tu veux c'est juste mettre un badge à ton application.
Rien à voir avec les notifications (qui peuvent aussi mettre des badges à ton appli quand tu reçois ladite notif mais justement dans ton cas ça n'est pas suite à ça que tu veux mettre le badge, donc oublie les notifications)
Doc de UIApplication
Ou alors j'ai pas trouvé la méthode dans le lien que tu m'as donné...
Si c'est dans l'application, mais n'importe où, y compris au dessus d'une image, il va falloir que tu te pèles une moulinette perso (en dessinant par exemple avec Quartz OU simplement avec une image + un UILabel par dessus).
Merci a vous bonne journée ++
Tu peux tout simplement choper une image d'icone avec un badge de notif dessus notif (une capture d'écran que tu fais toi même ou une choper sur le net), un coup de baguette magique avec photoshop ou gimp, un peu de gomme pour virer le chiffre, tu ajoutes cette image avec un label dedans et c'est finis !
Sauf qu'il faut étendre l'image en largeur si le nombre de chiffres augmente... d'où quartz. ;-)
A moins de dessiner 3 images pour 3 nombres de chiffres différents par exemple. :-)
C'est pour ça que sont fait les 9-patchs, ça va étendre une zone de ton image
par exemple, si tu as une image d'un badge rond de 11x11 px:
Et voila ça te fait une image dans laquelle tes arrondis gauche et droite (et haut et bas aussi, au cas ou) seront préservés, mais le centre sera étiré!
1) méthode en utilisant une image :
- prévoir une image de bulle de largeur 2*L+1, où L est la largeur de la zone (à gauche comme à droite je suppose que c'est la même taille) à ne pas déformer. Typiquement L correspond donc au rayon de la bulle
- utiliser les méthodes de UIImage "stretchableImageWithLeftCapWidth:topCapHeight:" pour créer, à partir de l'UIImage (contenant l'image de largeur 2*L+1) une UIImage stretchable, et utiliser cette UIImage stretchable pour créer sa bulle. UIKit va automatiquement étirer uniquement le pixel central (d'où le "+1" dans "2*L+1") au besoin sans déformer les L pixels de gauche et les L pixels de droite et conservant ainsi l'arrondi
2) Méthode avec Quartz (exemple de cas simplifié où l'on ne veut pas de dégradé dans la bulle, juste un fond rouge par exemple), en supposant qu'on ait un IBOutlet nommé "bulle" vers un UILabel de notre XIB, il suffit de préparer la bulle avec ce code : Et voilà et après quand on veut modifier le texte de la bulle : Plutôt que juste un appel à sizeToFit on peut utiliser "sizeThatFit:", récupérer le CGRect obtenu, et l'ajuster un peu (ne récupérer que la largeur du sizeThatFit sans modifier la hauteur du label, rajouter quelques pixels à cette largeur pour avoir qques marges, et affecter la frame.size du label à cette nouvelle taille)
Bref, c'est assez simple dans l'ensemble.
J'utilisais un "vieux" code qui marche pas mal néanmoins (sur une UIView) :
Edit : je change le nom du sujet.
Edit 2: puisque c'est comme ça, je vais les tester de facto dans l'application que je suis en train de développer.
Cependant, j'ai un problème avec le label dans mes UITableViewCells.
Le selectedBackgroundView de la cell passe dessus le label !!?
Je ne vois pas pourquoi ça le ferait avec ce label alors que j'en ai déjà eu plein évidemment dans les TableViewCells...
Etrange.
EDIT : ce sujet a été séparé ici :
http://pommedev.mediabox.fr/index.php/topic,6539.msg64985/topicseen.html#new
Il me dessine ma bulle autour du chiffre j'ai aucun espace autour.
Voici mon code:
Et encore là du coup j'ai affecté la frame pour qu'elle ne change pas son frame.origin, mais si tu veux profiter du fait que tu ajustes la taille de la bulle à son contenu pour aussi la centrer ou la caler dans le coin supérieur droit ou gauche ou quoi de sa superview, c'est l'occasion de faire les calculs adéquats (par exemple pour faire en sorte que en plus d'ajuster la largeur de la bulle, le bord droit de la bulle soit à disons 2px du bord droit de self.view, je sais pas moi, à toi d'adapter pour tes besoins)
J'ai regardé sur le net comment se servir de sizeThatFits mais je n'ai rien trouvé que je comprenais bien pour m'en servir. Là avec ton exemple j'ai tout de suite compris il m'a juste fallu de rajouter un UITextAlignmentCenter pour que le texte soit centré dans ma bulle et voilà .
Merci beaucoup ++