Ustawiam obrazy dla stanów przycisku Normalny, Podświetlony i Wybrany, ale gdy przycisk jest w stanie zaznaczonym i naciskam / podświetlam go, nie widziałem podświetlonego obrazu, ale tylko wyszarzony obraz. Czy można ustawić obraz dla stanu podświetlenia po wybraniu przycisku?
mój kod:
[button setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];
kiedy robię:
[button setSelected:YES];
i naciśnij przycisk, obraz „press.png” nie zostanie wybrany.
button.adjustsImageWhenHighlighted = NO;
najpierw dzwonię .Odpowiedzi:
Znalazłem rozwiązanie: trzeba dodać linię dodawania
źródło
Możesz to zrobić w programie Interface Builder.
Wybierz opcję,
UIButton
którą chcesz ustawić,IB
a następnie przejdź doattributes inspector
.Na zrzutach ekranu używam niestandardowego typu przycisku, ale to nie ma znaczenia.
źródło
Szybki 3
Aby ustawić obraz tła, możemy użyć
setBackgroundImage(_:for:)
Swift 2.x
źródło
setImage
)Myślę, że większość plakatów całkowicie mija się z celem. Miałem ten sam problem. Pierwotne pytanie dotyczyło stanu podświetlenia wybranego przycisku (ŁĄCZENIE OBU STANÓW), którego nie można ustawić w IB i który wraca do stanu domyślnego z pewnym przyciemnieniem. Jedyne działające rozwiązanie, jak wspomniał jeden post:
źródło
Jeśli masz ku temu dobry powód, to załatwi sprawę
dodaj te cele:
źródło
W Swift 3.x możesz ustawić podświetlony obraz po wybraniu przycisku w następujący sposób:
źródło
Szybko możesz:
źródło
Popraw mnie, jeśli się mylę. Wykonując
wyraźnie zmieniasz stan wybranych przycisków. Więc naturalnie przez kod, który podałeś, obraz będzie dla wybranego stanu w twoim przypadku check.png
źródło
Jeśli ktoś się zastanawia, jak to działa w Swift, oto moje rozwiązanie:
źródło
Swift 3+
LUB
Oznacza to, że przycisk jest w aktualnym
selected
stanie, a następnie go dotkniesz, pokażhighlight
stan.źródło
Miałem problem z ustawieniem
imageView.highlighted = NO;
(ustawienie TAK działało poprawnie i obraz zmienił się na podświetlony).Rozwiązanie zadzwoniło
[imageView setHighlighted:NO];
Wszystko działało poprawnie.
źródło
Skąd chcesz dzwonić
Metoda:
Powyższe uznanie dla Jorge, ale poprawiłem to trochę, dając pełne działające rozwiązanie
źródło
Xamarin C #
Wykonywanie bitowego OR nie działa z jakiegoś powodu
Następujące prace
źródło
Jeśli potrzebujesz podświetlonego odcienia, który system operacyjny zapewnia domyślnie po dotknięciu i przytrzymaniu przycisku niestandardowego dla wybranego stanu, użyj tej podklasy UIButton. Napisane w Swift 5:
źródło