2010-08-12 11 views
12

Chcę wyłączyć mój UIButton, więc wzywam:Unikanie podejmowania UIButton przezroczysty/przezroczyste po wyłączeniu go

button.enabled = FALSE; 

Jednak to sprawia, że ​​przycisk przejrzenia i widzę elementy pod nią. Nie przeszkadza mi to, że zmienia kolor, po prostu nie chcę, żeby był przezroczysty.

Próbowałem zaznaczyć pola "nieprzejrzysty" i "klip subviews" w IB, ale bez radości.

Czy istnieje prosty sposób na rozwiązanie tego problemu? Sądzę, że mógłbym umieścić UIImageView z tym samym obrazem przycisku, ale to nie jest eleganckie rozwiązanie.

Dzięki wszystkim!

Michael

Odpowiedz

24

Spróbuj userInteractionEnabled właściwość:

button.userInteractionEnabled = NO; 
+0

Idealny! Dzięki - naprawdę powinienem o tym pomyśleć: D – Smikey

+1

@ Odpowiedź moby's jest właściwa. – MatterGoal

+0

Ta jedna działa, ale może mieć inne problemy, ponieważ dotknięcia przycisku nie będą przekazywane do widoku macierzystego. Button.adjustsImageWhenDisabled = NO; jest lepszy jak @Snowman zaproponował –

1

interfejs konstruktora wybrać przycisk, a następnie zapoznać się z atrybutów przycisków. Istnieje menu rozwijane dla domyślnych, podświetlonych, wybranych lub wyłączonych konfiguracji stanu - wybierz wyłączone, a następnie dostosuj właściwość alfa.

+0

Aaaa, dzięki, ja jakoś nigdy nie zauważyłem, że! Jednak po wybraniu konfiguracji wyłączonego stanu nic w panelu "Widok" nie zmieni się, alfa nadal będzie miała wartość 1, a pola wyboru "nieprzezroczyste" itd. Pozostaną niezmienione, niezależnie od wybranej konfiguracji stanu. Jedyną zmianą jest Kolor tekstu i Kolor cienia. Problem pozostaje ... – Smikey

+0

Nie mogłem znaleźć menu rozwijanego, jak opisano w aktualnej wersji Xcode. – ixany

+0

Po wybraniu przycisku otwórz inspektora atrybutów i powinieneś zobaczyć rozwijaną etykietę "konfiguracja stanu". (przynajmniej dla Xcode 8.2.1) – mbehan

27

Można również zrobić:

button.adjustsImageWhenDisabled = NO; 
+9

Właściwie to powinna być poprawna odpowiedź! – Raphael

Powiązane problemy