2015-07-10 11 views
5

Sto tentando di aggiungere due etichette nel punto in cui il titolo è mostrato nella barra di navigazione, ma non riesco a farlo. Sarebbe molto bello se potessi ottenere questo risultato con lo storyboard ma, come posso vedere, non posso farlo.Personalizza la barra di navigazione aggiungendo due etichette anziché il titolo in Swift

Come ho visto, devo usare navigationItem ma non so esattamente come farlo. Se qualcuno ha qualche esempio o se qualcuno potrebbe spiegarmi in modo più specifico come farlo sarebbe meraviglioso.

E ho bisogno di dire che sono completamente sconosciuto con Obj-C, quindi qualsiasi aiuto dovrebbe essere in Swift.

risposta

16

Non sono sicuro che sia possibile farlo dallo storyboard, ma se si desidera aggiungere due etichette titolo, è possibile effettuare le seguenti operazioni nel metodo viewDidLoad() del controller di visualizzazione per il quale si desiderano i due titoli:

if let navigationBar = self.navigationController?.navigationBar { 
     let firstFrame = CGRect(x: 0, y: 0, width: navigationBar.frame.width/2, height: navigationBar.frame.height) 
     let secondFrame = CGRect(x: navigationBar.frame.width/2, y: 0, width: navigationBar.frame.width/2, height: navigationBar.frame.height) 

     let firstLabel = UILabel(frame: firstFrame) 
     firstLabel.text = "First" 

     let secondLabel = UILabel(frame: secondFrame) 
     secondLabel.text = "Second" 

     navigationBar.addSubview(firstLabel) 
     navigationBar.addSubview(secondLabel) 
    } 

In questo modo è possibile aggiungere il numero subviews come si vuole la barra di navigazione

+0

se u per favore mi può aiutare con una domanda supplementare. Come posso aggiungere dei vincoli a queste etichette in modo che vengano posizionati al centro in orizzontale e uno al di sotto dell'altro –

+0

@vdawg le etichette sono allineate in senso contrario ... plz dicci come allineare le etichette una sopra l'altra – Bevan

+1

@Bevan puoi solo cambiare le proprietà firstFrame 'e secondFrame per regolare i frame delle etichette let firstFrame = CGRect (x: 0, y: 0, width: navigationBar.frame.width, height: navigationBar.frame.height/2) let secondFrame = CGRect (x: 0, y: navigationBar.frame.height/2, width: navigationBar.frame.width, height: navigationBar.frame.height/2) – vdawg

Problemi correlati