2012-03-18 6 views
45

Voglio creare un UIBarButtonItem per rappresentare le impostazioni dell'app (ruota dentata). Attualmente posso trovare solo un'opzione per creare UIBarButtonItem (Interface Builder> Attributes Inspector> identificatore) come "Aggiungi" (+), "Modifica", "Fatto", "Annulla" ecc.iOS - UIBarButtonItem Identifier - opzione per creare "impostazioni" pulsante a cremagliera

Non riesco a trovare un opzione per creare un'icona di impostazioni (a cremagliera). C'è un modo per farlo nel builder dell'interfaccia o tramite il codice?

Oppure devo creare un'immagine e quindi l'immagine?

+0

devi creare le imghe. – scord

+0

@ scordova88 grazie mille per averlo confermato, ho appena visto un articolo che insegna a disegnare un disegno a cremagliera http://coreldraw.com/forums/t/25477.aspx – user1046037

risposta

63

Unicode ha diversi esempi notevoli che puoi semplicemente copiare e incollare in una dichiarazione di stringa in Xcode, o utilizzare lo standard Unicode String Escape (\ uxxxx) e iOS è in realtà abbastanza fluente quando si tratta di Unicode (conosco alcuni dei char di sono abbastanza brutto, ma questo è Unicode per ya '):

caratteri Unicode 'GEAR SENZA HUB'(U + 26ED): http://www.fileformat.info/info/unicode/char/26ed/index.htm

caratteri Unicode 'Gear'(U + 2699): http://www.fileformat.info/info/unicode/char/2699/index.htm

Oppure prepara un'immagine e imposta la proprietà customView di UIBarButtonItem di conseguenza.

+0

fantastico !! grazie mille !! Stavo passando un sacco di tempo a cercare di costruire l'immagine (non sono così familiare con i software di disegno) per abbinare il gradiente della barra degli strumenti – user1046037

+0

Nessun problema. Non è unicode una bellezza? – CodaFi

+0

uicode sembra buono e sicuramente un grande risparmio di tempo !!. Un piccolo dubbio su come aumentare la dimensione del font di uibarbuttonitem. – user1046037

15

Composizione CodaFi e user1046037 risposte:

Creazione UIBarButtonItem con caratteri Unicode come titolo.

È necessario inizializzare UIBarButtonItem con il titolo (initWithTitle:) non con l'articolo di sistema (initWithBarButtonSystemItem:).

È possibile impostare il titolo personalizzato con una stringa (ad esempio un carattere unicode).

È possibile ridimensionare il titolo.

UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"\u2699" style:UIBarButtonItemStylePlain target:self action:@selector(showSettings)]; 

UIFont *customFont = [UIFont fontWithName:@"Helvetica" size:24.0]; 
NSDictionary *fontDictionary = @{NSFontAttributeName : customFont}; 
[settingsButton setTitleTextAttributes:fontDictionary forState:UIControlStateNormal]; 
5

Per ottenere l'icona ruota dentata tramite Swift, effettuare le seguenti operazioni in viewDidLoad(), supponendo che avete cablato il pulsante dalla visualizzazione nel controller. (Es: @IBOutlet var settingsButton: UIBarButtonItem!) commento

self.settingsButton.title = NSString(string: "\u{2699}") as String 
    if let font = UIFont(name: "Helvetica", size: 18.0) { 
     self.settingsButton.setTitleTextAttributes([NSFontAttributeName: font], forState: UIControlState.Normal) 
    } 
+1

Questo ora si presenta come emoji -_- – aehlke

3

Questo funziona per me a Swift 3 e iOS 10 ...

let settingsButton = UIBarButtonItem(title: NSString(string: "\u{2699}\u{0000FE0E}") as String, style: .plain, target: self, action: #selector(settings)) 
let font = UIFont.systemFont(ofSize: 28) // adjust the size as required 
let attributes = [NSFontAttributeName : font] 
settingsButton.setTitleTextAttributes(attributes, for: .normal) 

vedere @ di hazernut nella risposta accettata. Senza aggiungere \u{0000FE0E} alla stringa, si presenta come un'emoji ed è immune da qualsiasi impostazione di aspetto. Aggiungendo quella stringa corregge quello.