2010-11-02 4 views
5

Proprio come la tabbar, voglio mostrare il badge su UISegmentedControl. Poiché non vedo metodi predefiniti per UISegmentedControl, come disponibile per UITabBar.UISegmentedControl con numero distintivo

alt text

ho pensato di aggiungere il badge come immagine solo su di esso, ma forse c'è un modo migliore.

risposta

12

Here è una piccola libreria di terze parti che ho usato per disegnare badge su varie cose. È carino Ad esempio, cambiare il colore del badge in modo che corrisponda al mio design è stato banale.

Una volta che si mettono questa classe nel progetto e includere nella tua controller della vista, si va:

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

... e quindi aggiungere customBadge1 come una visualizzazione secondaria di qualsiasi cosa che stai badging.

+0

COOL Libreria di terze parti ... grazie :) – Tariq

+0

Ho creato una sottoclasse UISegmentedControl che utilizza questa libreria e rende ancora più facile la creazione di badge - vedere la mia risposta di seguito. –

0

Non esiste alcuna proprietà o metodo del badge, diversamente dalla barra delle schede. Se vuoi farlo devi solo mettere sopra un'immagine personalizzata. Potresti creare una sottoclasse del controllo segmentato e creare una funzione che faccia questo per te.

+0

Sì, anch'io penso che questo sia possibile utilizzando solo l'immagine personalizzata. Grazie per la risposta – Tariq

6

Ho avuto questo problema oggi, quindi ho creato una sottoclasse UISegmentedControl che consente di impostare facilmente i numeri di badge su ciascuno dei segmenti.

Utilizzando è facile come:

[segmentedControl setBadgeNumber:1 forSegmentAtIndex:0]; 

Review, la documentazione e il codice sorgente sono a https://github.com/dave-thompson/MESegmentedControl.