2009-06-03 7 views
5

Voglio mostrare un totale all'interno di una barra degli strumenti. Ho inserito IB nella UILabel in cima alla barra degli strumenti.UILabel all'interno di una UIToolbar che utilizza IB è invisibile in esecuzione, come risolvere il problema?

Tuttavia, quando eseguo l'app, UILabel è totalmente invisibile (ma può impostare valori su codice fine).

La cosa più bizzarra è che in un'altra forma, tutto funziona bene. Non vedo perché in una forma funziona ma non in un'altra ...

Qualche idea su come risolvere questo problema? O perché sta succedendo questo comportamento?

risposta

21

Non utilizzare un UILabel.

Utilizzare un UIBarButtonItem. Quindi imposta lo stile: chiaro. Sembra un'etichetta, ma in realtà è un bottone senza bordi. Questa è la pratica generale di visualizzare il testo su una barra.

È anche possibile creare UIBarButtonItem con una vista personalizzata nel codice. Sei semplice "avvolgere" l'UILabel in un UIBarButtonItem che ti consente di aggiungere tutto ciò che vuoi su una barra degli strumenti.


Per aggiungere in risposta al commento:

In entrambi i casi, si effettua il pulsante "inattivo" e non risponde al tocco. Anche se si tratta di un pulsante, non sembra esserlo. In questo modo, Apple si aspetta di aggiungere viste a una barra degli strumenti/barra di navigazione come indicato per "fluttuare le cose su di esso". Non viola le linee guida HIG, al contrario, è una tecnica di design consigliata.

Per fermare il bagliore: Creare il pulsante di programmazione, assicurarsi che sia disabilitato, aggiungere alla barra, dovrebbe quindi essere disabilitato, ma si attenua.

+0

Buon pensiero. Questa è probabilmente una risposta migliore del mio :) – Dutchie432

+0

lo faccio prima, ma poi penso che violano le linee guida di Apple dell'interfaccia utente, perché posso fare clic sull'etichetta e comportarsi come un pulsante, e io non so come fanno a semplicemente essere informativo e non rispondere alle azioni dell'utente. Ma se è ok, allora è la soluzione migliore. – mamcx

+0

Il pulsante è disattivato e non è più un pulsante. È così che deve essere usato. –

0

In IB, si è tentato di selezionare l'etichetta e utilizzare la voce di menu "Porta a carattere" (in Layout)? Sembra che tu stia cercando di fare qualcosa di abbastanza standard.

Quando si tenta di impostare valori, l'etichetta viene visualizzata come zero o all'indirizzo 0x0? È possibile che l'etichetta sia presente, ma il suo testo non può essere impostato perché la sua istanza è errata (non correttamente collegata in IB all'IBOutlet) .... Basta inserire un punto di interruzione sulla linea in cui si sta tentando di impostare il valore (s) per l'etichetta e verificare che la variabile label non sia nulla (o 0x0). Se non lo è, prova a impostare il testo e verifica sulla riga successiva che il suo testo sia stato impostato correttamente.

0

trascinare un UIButton nel UIToolBar. Quindi deselezionare User Interaction Enables per questo pulsante.

Personalizza il tuo UIButton in modo che sarà simile a un UILabel. Spero che questo ti possa aiutare.

UILabel into a UIToolbar