Działa idealnie w moim przypadku - potrzebuję moich pięciu elementów tabBar, aby po wybraniu miały niepowtarzalne kolory. Udało mi się ustawić ten atrybut Runtime na UITabBarItem, na UINavigationControllerpodłączonym do mojego tabBaru i działa bezbłędnie. Wszystko to bez pisania kodu, co jest świetne, ponieważ trzykrotnie używam klasy VC. Dzięki!
odwrotnie - jest to jedyne podejście, które działa na iOS 10 (tint z panelu atrybutów wydaje się nie działać, a atrybut runtime „tintColor” uitabbaritem też nie działa.
func application(application:UIApplication, didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)->Bool{// I added this lineUITabBar.appearance().tintColor =UIColor(red:255/255.0, green:255/255.0, blue:255/255.0, alpha:1.0)returntrue}
W powyższym przykładzie mój przedmiot będzie biały. „/255.0” jest potrzebne, ponieważ oczekuje wartości od 0 do 1. W przypadku bieli mogłem po prostu użyć 1. Ale dla innych kolorów prawdopodobnie użyjesz wartości RGB.
Jeśli chcesz, aby wszystkie elementy paska kart miały ten sam kolor (zaznaczone i niezaznaczone) ...
Krok 1
Upewnij się, że zasoby obrazu są skonfigurowane do renderowania jako = obraz szablonu . To pozwala im dziedziczyć kolor.
Krok 2
Użyj edytora scenorysów, aby zmienić ustawienia paska kart w następujący sposób:
Ustaw pasek kart: Odcień obrazu na kolor, który ma odziedziczyć wybrana ikona.
Ustaw pasek kart : Odcień paska na kolor, jaki ma mieć pasek kart.
Ustaw widok: Odcień do koloru, który chcesz zobaczyć w edytorze scenorysu, nie ma to wpływu na kolor ikony po uruchomieniu aplikacji.
Krok 3
Kroki 1 i 2 zmienią kolor wybranej ikony. Jeśli nadal chcesz zmienić kolor niezaznaczonych elementów, musisz to zrobić w kodzie. Nie znalazłem sposobu, aby to zrobić za pomocą edytora scenariuszy.
Utwórz niestandardową klasę kontrolera paska kart ...
// TabBarController.swiftclassTabBarController:UITabBarController{override func viewDidLoad(){super.viewDidLoad()// make unselected icons whiteself.tabBar.unselectedItemTintColor =UIColor.white
}}
... i przypisz niestandardową klasę do kontrolera sceny paska kart.
Jeśli dowiesz się, jak zmienić niewybrany kolor ikony za pomocą edytora scenorysów, daj mi znać. Dzięki!
W jakiś sposób nie jesteśmy w stanie zmienić koloru wybranego elementu na pasku kart Odcień za pomocą samego scenariusza, dlatego dodałem poniższy kod w moim ViewDidLoad, mam nadzieję, że to pomoże.
Po pierwsze, tworzysz własną podklasę kontrolera paska kart i dodajesz ją do kontrolera kart w swoim storyboardzie. W viewDidLoad()metodzie możesz następnie dostosować pasek kart. W tym miejscu należy zaznaczyć, że tintColoratrybut z tabBarreprezentuje kolor wybranej pozycji, a nie kolor niewybranych! Aby zmienić kolor niezaznaczonych elementów, zalecamy przejrzenie każdego elementu w pętli i użycie oryginalnych kolorów obrazów, aby nie były automatycznie renderowane jako szare.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.