2012-12-17 8 views
5

Ho già creato un progetto in cui ho impostato un UIButton per avere sia il testo sia un'immagine (nel generatore di interfacce).iOS - Interface Builder: il titolo UIButton scompare quando si imposta l'immagine

Ho creato un altro progetto e voglio ottenere la stessa cosa, ma quando imposto il pulsante per avere un'immagine, il titolo scompare (non viene nascosto dietro l'immagine).

Non riesco a capire perché sia ​​così se qualcuno potesse far luce su questo argomento lo apprezzerei!

Grazie.

risposta

19

Cambia il tuo pulsante in base al tipo personalizzato. inserire l'immagine e inserire il testo.

Sarà necessario posizionare il proprio sfondo su di esso, ma a quel punto sarà possibile utilizzare le impostazioni dei bordi per posizionare sia il testo che l'immagine.

Ogni pulsante che ho con immagine e testo è impostato su personalizzato e ha anche la sua immagine bg.

Oh, un'altra cosa che uso. È il cornerRadius. Per dare alla vista l'effetto arrotondato come i pulsanti hanno di default.

saveButton.layer.cornerRadius = roundingNumber.floatValue; 

Inoltre si dovrebbe essere in grado di utilizzare il borderWidth e borderColor in collaborazione con cornerRadius per ottenere un pulsante che sembra abbastanza simile al pulsante originale

saveButton.layer.borderRadius = 1.0f; 
saveButton.layer.borderColor = [[UIColor blueColor] CGColor]; 
// These are not the exact values (or maybe they are) but you get the idea. 

speranza che aiuta.

Correzione

Dopo aver trascorso un po 'di tempo indagando, sembra che quando si mette l'immagine nel pulsante. il testo viene spostato a destra.

Utilizzare le impostazioni dei bordi per riportare l'immagine sopra.

Con il pulsante selezionato, Cerca in "Attributi"> Pulsante> Bordo> (discesa "Titolo")

equasion sono venuto in mente è

[Edge inset for Title] Left = -(imageWidth * 2) 

Questo dovrebbe sinistra allineare la titolo con l'immagine che hai inserito.

Il posizionamento personalizzato dovrà essere eseguito per renderlo corretto.

questo può essere fatto interamente in Interface Builder e si può utilizzare il pulsante stile RoundedRect

Qui ci sono alcune immagini che dimostrano il cambiamento.

Qui imposto il tipo di pulsante su "Personalizzato" per rimuovere il bordo e lo sfondo.

Custom was set

Qui impostare la parte superiore e sinistra nel set di bordo per "Title" (titolo è un'opzione nel menu a discesa)

Left and Top was set

EDIT

nuovi Xcode ha spostato le impostazioni del formato in una nuova posizione

enter image description here

+0

Penso che questa sia la risposta giusta. E non dimenticare di usare setImage: forState e setTitle: forState. – AntonPalich

+0

non ha funzionato per me. – jonypz

+0

Aggiunti alcuni aiuti visivi. Spero possa aiutare. –

0

Sembra che si stia impostando l'immagine per il pulsante ma non l'immagine di sfondo in modo da capovolgerlo.

+0

Ho paura che non sia il problema in questo caso. Posso avere un'immagine come sfondo e anche testo, ma voglio uno sfondo, un'immagine e un testo. –

+0

Oh, ho capito. Consiglierei semplicemente di mettere un'immagine come uno dei pezzi. Quindi avere lo sfondo come un'immagine, posare il pulsante in alto e avere anche il testo. – rooster117

3

Basta mettere l'immagine nel campo di fondo, invece. In questo modo il testo apparirà davanti all'immagine.

+0

Questo allungherà anche l'immagine sull'intera cornice del pulsante. – oarfish

Problemi correlati