Domanda

E 'possibile aggiungere un badge standard alla ricerca di un UIButton norma?

Se non è supportato semi-nativamente, quale sarebbe il modo più semplice per raggiungere questo obiettivo?

immagine Esempio:

button Un iPhone UI

È stato utile?

Soluzione

Ecco una classe VERY NICE da Sascha Paulus chiamato CustomBadge , che costruisce e rende badge personalizzati utilizzando core grafico . Sono solo sottoclassi UIView, in modo da poterli lay out usando la loro struttura come qualsiasi altro sottoclasse UIView.

Ho usato questo biblioteca molte volte ed è stato sempre soddisfatti dei risultati. Flessibile, facile da usare. Totalmente consiglio.

Altri suggerimenti

È possibile verificare la presenza di diverse opzioni qui: CocoaControls Badges

La classe che Apple usa è _UIBadgeView ( https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h ), ma naturalmente, questa classe è privato (la sottolineatura) e non documentate.

Ecco un'altra classe che implementa questa vista con lo stesso look and feel come Apple permettendo anche di personalizzare esso: https : //github.com/JaviSoto/JSBadgeView . La cosa grandiosa di questo è che consente di posizionare il distintivo rispetto ad un'altra vista automaticamente, in uno dei suoi angoli.

Abbiamo una visione distintivo di Nimbus che è super facile da usare e ben documentato:

NimbusBadge

Non so come si fa fuori dalla scatola e sinceramente dubbio che Apple costruito che nell'SDK.

In ogni caso, si potrebbe creare una vista personalizzata con un pulsante su di esso, aggiungere lo sfondo del badge come UIImageView e mettere un'etichetta su di esso per tenere il conteggio distintivo.

Questa è una soluzione rapida, potrebbe essere meglio per creare una sottoclasse personalizzata di UIButton e aggiungere la tua roba distintivo come una visualizzazione secondaria

mi piacerebbe andare un modo simile a @ Björn Kaiser: Utilizzare il pulsante Come vi piace, e quindi aggiungere una visualizzazione personalizzata con quel distintivo come una visualizzazione secondaria ad essa - ho fatto e funziona bene

Per quanto riguarda la vista, è possibile disegnare come ti piace. È possibile disegnare manualmente o utilizzare Core Animation e lasciarlo fare la parte principale, vale a dire theBadge.layer.cornerRadius = ...; per dargli una forma circolare, il testo / numero in drawRect: o aggiungerlo come un'etichetta etc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top