Próbuję zmienić strzałkę przycisku Wstecz
Obecnie używam następujących elementów do kontrolowania rozmiaru tekstu, a także koloru tekstu na przycisku Wstecz:
[[UIBarButtonItem appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor,
[UIFont boldSystemFontOfSize:16.0f], UITextAttributeFont,
[UIColor darkGrayColor], UITextAttributeTextShadowColor,
[NSValue valueWithCGSize:CGSizeMake(0.0, -1.0)], UITextAttributeTextShadowOffset,
nil] forState:UIControlStateNormal];
ale jeśli chcę zmienić tylko kolor strzałki przycisku Wstecz, co mam zrobić?
UINavigationBar
zmieniło się od iOS 7. Spójrz na odpowiedź, aby zobaczyć również efekt niektórych innych właściwości .Odpowiedzi:
Aby zmienić kolor ikony przycisku Wstecz dla określonego kontrolera nawigacyjnego *:
* Jeśli używasz aplikacji z więcej niż 1 kontrolerem nawigacyjnym i chcesz, aby ten kolor szewronu był stosowany do każdego z nich, możesz użyć serwera proxy wyglądu, aby ustawić szewron przycisku Wstecz dla każdego kontrolera nawigacyjnego w następujący sposób:
I na dokładkę, szybko (podziękowania dla Jay Mayu w komentarzach):
źródło
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
Musisz ustawić tintColor całej aplikacji.
Lub w Swift 3:
Źródło: Przewodnik dotyczący przenoszenia interfejsu użytkownika w iOS 7
źródło
UITextField
. Zdecydowanie nie polecam.Możesz ustawić kolor na całym pasku nawigacji aplikacji za pomocą tej metody
źródło
W ten sposób można zmienić tylko kolor strzałki (nie kolor tytułu przycisku wstecz):
Pasek nawigacji zawiera widok podrzędny typu _UINavigationBarBackIndicatorView (ostatni element w tablicy subviews), który reprezentuje strzałkę.
Rezultatem jest pasek nawigacyjny z różnymi kolorami strzałki przycisku Wstecz i tytułu przycisku Wstecz
źródło
self.navigationController.navigationBar.subviews
aż do znalezienia przycisku Wstecz.Jeśli używasz scenorysów, możesz ustawić kolor odcień paska nawigacji.
źródło
Wewnątrz rootViewController, który inicjuje navigationController, umieściłem ten kod w mojej metodzie viewDidAppear:
źródło
W iOS 6 tintColor zabarwiło tło pasków nawigacji, pasków kart, pasków narzędzi, pasków wyszukiwania i pasków zakresu. Aby zabarwić tło paska w systemie iOS 7, użyj zamiast tego właściwości barTintColor.
Zasoby projektowe iOS 7 Przewodnik przejścia z interfejsu użytkownika iOS 7
źródło
Możesz ustawić
tintColor
właściwość przycisku (lub elementu przycisku paska) lub widoku kontrolera widoku. Domyślnie właściwość odziedziczy tintę z widoku nadrzędnego aż do najwyższego poziomuUIWindow
aplikacji.źródło
Musiałem użyć obu:
I działa dla mnie, dziękuję wszystkim!
źródło
źródło
Zaktualizuj Swift 3
Wynik:
źródło
Aby zmienić
NavigationBar
kolor, możesz ustawić odcień jak poniżej.źródło
W przypadku tworzenia niestandardowego przycisku Wstecz w oparciu o UIButton z obrazem strzałki, oto fragment podklasy. Za jego pomocą możesz albo utworzyć przycisk w kodzie, albo po prostu przypisać klasę w Interface Builder do dowolnego UIButton. Obraz strzałki wstecz zostanie dodany automatycznie i pokolorowany kolorem tekstu.
źródło
Jeśli chcesz zmienić tylko strzałkę wstecz, ALE w całej aplikacji, zrób to:
źródło
W iOS 7 możesz umieścić
application:didFinishLaunchingWithOptions:
wAppDelegate.m
pliku następujący wiersz kodu :Ustaw
myColor
kolor, jaki ma mieć przycisk Wstecz w całej aplikacji. Nie ma potrzeby umieszczania go w każdym pliku.źródło
Swift 2.0: Kolorowanie paska nawigacji i przycisków
źródło
W swift 3, aby zmienić kolor strzałki przycisku Wstecz UIBarButton
źródło