2010-05-07 8 views
21

Il posizionamento orizzontale di UIBarButtonItems non è un problema, posso semplicemente riempire lo spazio con elementi di spazio fissi/flessibili. Tuttavia, non riesco a regolare la voce della barra degli strumenti in verticale. UIToolbar non ha alcuna proprietà di allineamento e UIBarButtonItem non ha modo di impostarne la cornice.Come si regola il frame o l'allineamento verticale di un UIBarButtonItem contenuto da un'istanza UIToolbar?

Ho bisogno di fare questo perché stiamo usando un mix di icone personalizzate create usando initWithImage e icone standard create con initWithBarButtonSystemItem. Le icone personalizzate non sono centrate correttamente (sono sfalsate verso l'alto, relativamente alle icone di sistema, che sono centrate correttamente), quindi la barra degli strumenti sembra imbarazzante.

+2

Vi consiglio 1) utilizzare qualcosa di personalizzato e non una barra degli strumenti; o 2) fissare le immagini in quanto saranno molto più facili da regolare correttamente. –

+0

1 non è un'opzione per me. Non riesco a prendere decisioni sul design visivo. Non riesco a decidere come appare l'interfaccia utente, quali sono gli effetti per i pulsanti o dove si trovano. 2 è qualcosa che preferirei evitare se possibile, dal momento che significa passare il lavoro al visual designer. È noioso passare ripetutamente le immagini avanti e indietro, modificarle e quindi esaminare i risultati attraverso tentativi ed errori. Inoltre, non c'è alcuna garanzia che questo risolverà il problema ... Anche se ridimensioniamo l'icona, UIKit potrebbe comunque spostarlo. Altri consigli? – akaii

+1

Qualche idea su come farlo per il testo? La soluzione imageinset non funziona per il testo. – easythrees

risposta

1

Non sembra essere un modo semplice e pulito per farlo, quindi sono andato con un trucco brutto ma funzionale: nidificare. Ho bloccato un'altra UIToolbar contenente il pulsante in un UIView che ho impostato come UIBarButtonItem sulla barra degli strumenti originale usando initWithCustomView. La seconda UIToolbar può muoversi liberamente all'interno di UIView e l'icona attuale conserva tutte le proprietà di un UIBarButtonItem.

Ugh.

3

imageInsets proprietà di UIBarItem?

34

Sì, imageInsets ha funzionato bene per me!

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f); 

sposta l'immagine di 4 pixel in basso.

evitare questo:

float topInset = 4.0f; 
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f); 

sposta l'immagine 4 pixel verso il basso (ma ridimensiona l'altezza dell'immagine in modo che appaia compressa).

+0

Felice di vedere che non sono l'unico con questo problema. Anche se "topInset = 2.0f" ha funzionato per me. –

+0

grazie davvero mi hai salvato il tempo –

Problemi correlati