Mam przycisk UIButton, który po wybraniu nie powinien zmieniać stanu po dotknięciu. Domyślnym zachowaniem jest ustawienie UIControlStateHighlighted podczas dotykania, co mnie denerwuje.
Propozycje?
Twój przycisk musi mieć buttonType
ustawiony niestandardowy.
W IB możesz odznaczyć "Podświetlenie dopasowuje obraz".
Programowo możesz użyć theButton.adjustsImageWhenHighlighted = NO;
Podobne opcje są dostępne również dla stanu „wyłączony”.
Oprócz powyższej odpowiedzi o odznaczeniu „podświetlenie dostosowuje obraz” w IB, upewnij się, że typ przycisku jest ustawiony na CUSTOM.
źródło
To zadziała dla Ciebie:
Trzecia linia jest tutaj sztuczką ...
Działa to tak samo przy ustawianiu image / backgroundImage
źródło
adjustsImageWhenHighlighted
WłaściwośćUIButton
wydaje się wpływać tylko obraz tła.źródło
jest równie przydatny do nadawania własnego wyglądu wyłączonego przycisku.
źródło
W zależności od tego, co zmieni się z domyślnego na podświetlony stan przycisku, możesz wywołać kilka metod, aby ustawić je na to, czego potrzebujesz. Więc jeśli obraz się zmieni, możesz to zrobić
Jeśli tekst się zmieni, możesz to zrobić
inne podobne funkcje:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
źródło
OK, oto proste rozwiązanie, jeśli to działa dla Ciebie, po tygodniu uderzania głową w to w końcu przyszło mi do głowy, że po prostu ustawiłem podświetloną = NIE dla pierwszej linii metody IBAction dla TouchUpInside lub TouchDown, lub cokolwiek działa. Dla mnie było dobrze na TouchUpInside.
źródło
Dla Swifty Developer -
źródło
Swift 3+
źródło
tylko dwie rzeczy:
źródło
Miałem podobny problem i stwierdziłem, że usunięcie zaznaczenia opcji Czyści zawartość graficzną w narzędziu do tworzenia interfejsu rozwiązało mój problem
źródło
ustaw przycisk Typ - „Niestandardowy” i odznacz - Podświetlony Dostosuj obraz i gotowe.
źródło
Unikaj ustawiania UIButton's Line Break na Clip , zamiast tego użyj standardowego Truncate Middle
źródło