2010-11-02 28 views
5

Tout comme la barre d'onglets, je souhaite afficher le badge sur UISegmentedControl. Comme je ne peux pas voir les méthodes prédéfinies pour UISegmentedControl comme disponible pour UITabBar.UISegmentedControl avec le numéro de badge

alt text

Je pensais à ajouter le badge comme une image juste au-dessus de celui-ci, mais peut-être il y a une meilleure façon.

Répondre

12

Here est une petite bibliothèque tierce que j'ai utilisée pour dessiner des badges sur diverses choses. C'est plutôt sympa. Par exemple, changer la couleur du badge pour correspondre à mon design était trivial.

Une fois que vous apportez cette classe dans votre projet et l'inclure dans votre contrôleur de vue, vous allez:

CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:@"Badge 1"]; 

... puis ajoutez customBadge1 comme un sous-vue de quelque chose que vous badging.

+0

COOL 3ème partie de la bibliothèque ... merci :) – Tariq

+0

J'ai créé une sous-classe UISegmentedControl qui utilise cette librairie et rend le badging encore plus facile - voir ma réponse ci-dessous. –

0

Il n'existe aucune propriété ni méthode de badge, contrairement à la barre d'onglets. Si vous voulez faire cela, vous devrez juste mettre une image personnalisée par-dessus. Vous pouvez sous-classer le contrôle segmenté et créer une fonction qui le fait pour vous.

+0

Oui, je pense aussi que c'est possible en utilisant une image personnalisée seulement. Merci pour la réponse – Tariq

6

J'ai eu ce problème aujourd'hui, j'ai donc mis en place une sous-classe UISegmentedControl qui vous permet de définir facilement les numéros de badge sur chacun des segments.

Son utilisation est aussi simple que:

[segmentedControl setBadgeNumber:1 forSegmentAtIndex:0]; 

Screenshot, la documentation et le code source sont à https://github.com/dave-thompson/MESegmentedControl.