2010-08-12 3 views
12

voglio disabilitare il mio UIButton, così io chiamo:evitando di fare un UIButton trasparente/trasparente quando disabilitarlo

button.enabled = FALSE; 

Tuttavia, questo rende il pulsante see-through e posso vedere gli elementi sottostanti. Non mi dispiace che cambi colore, semplicemente non voglio che sia trasparente.

Ho provato barrando le caselle per 'opache' e 'subviews di clip' in IB, ma nessuna gioia.

C'è un modo semplice per risolvere questo problema? Suppongo che potrei mettere un UIImageView con la stessa immagine del pulsante dietro di esso, ma non è certo una soluzione elegante.

Grazie a tutti !!

Michael

risposta

24

Prova userInteractionEnabled proprietà:

button.userInteractionEnabled = NO; 
+0

Perfetto! Grazie - avrei dovuto pensarci davvero: D – Smikey

+1

@ la risposta di moby è quella giusta. – MatterGoal

+0

Ebbene questo funziona, ma potrebbe avere altri problemi dal momento che le tocca il pulsante non saranno inoltrati a vista primaria. Button.adjustsImageWhenDisabled = NO; è meglio come @Snowman ha proposto –

1

In Interface Builder selezionare il pulsante e poi dare un'occhiata agli attributi dei pulsanti. È disponibile un menu a discesa per le configurazioni di stato predefinite, evidenziate, selezionate o disabilitate: selezionare disabilitato e quindi modificare la proprietà alpha.

+0

Aaaah, grazie, ho in qualche modo mai notato che! Tuttavia, quando si seleziona la configurazione stato disabilitato, nulla nella 'Vista' pannello cambia, l'alfa è ancora a 1, e le caselle di controllo 'opaco' ecc sempre lo stesso indipendentemente dalla configurazione stato è selezionata. L'unica cosa che cambia è il colore del testo e il colore dell'ombra. Quindi il problema rimane ... – Smikey

+0

non riuscivo a trovare un menu a discesa, come descritto nella versione Xcode corrente. – ixany

+0

Con il pulsante selezionato aprire la finestra di ispezione attributi e si dovrebbe vedere il menu a discesa con l'etichetta "config stato". (corretto almeno per Xcode 8.2.1) – mbehan

27

È anche possibile fare:

button.adjustsImageWhenDisabled = NO; 
+9

In realtà questa dovrebbe essere la risposta corretta! – Raphael