Jak mogę zmienić kolor nagłówka sekcji w UITableView?
EDYCJA : Odpowiedź udzielona przez DJ-S powinna być rozważona dla iOS 6 i nowszych. Przyjęta odpowiedź jest nieaktualna.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
źródło
źródło
Odpowiedzi:
Mamy nadzieję, że ta metoda z
UITableViewDelegate
protokołu pozwoli Ci zacząć:Cel C:
Szybki:
Zaktualizowano 2017:
Swift 3:
Zamień na
[UIColor redColor]
dowolneUIColor
. Możesz także dostosować wymiaryheaderView
.źródło
[UIColor xxxColor]
jednak gdy próbuję kolor niestandardowy, jak te, które można uzyskać z programu Photoshop (tak użyciuUIColor red:green:blue:alpha:
, jest to po prostu biały robię coś złego.?To stare pytanie, ale myślę, że odpowiedź wymaga aktualizacji.
Ta metoda nie obejmuje definiowania i tworzenia własnego widoku niestandardowego. W iOS 6 i nowszych można łatwo zmienić kolor tła i kolor tekstu, definiując
metoda delegowania sekcji
Na przykład:
Zaczerpnięte z mojego postu tutaj: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Szybki 3/4
źródło
header.contentView.backgroundColor = [UIColor blackColor];
opcja da ci nieprzejrzysty nagłówekOto jak zmienić kolor tekstu.
źródło
Możesz to zrobić, jeśli chcesz nagłówek z niestandardowym kolorem:
To rozwiązanie działa świetnie od iOS 6.0.
źródło
Poniższe rozwiązanie działa dla Swift 1.2 z iOS 8+
źródło
Ustawienie koloru tła w UITableViewHeaderFooterView jest przestarzałe. Użyj
contentView.backgroundColor
zamiast tego.źródło
Nie zapomnij dodać tego fragmentu kodu od delegata, w przeciwnym razie twój widok zostanie odcięty lub pojawi się za stołem, w zależności od wysokości twojego widoku / etykiety.
źródło
Możesz to zrobić na main.storyboard w około 2 sekundy.
źródło
Jeśli nie chcesz tworzyć widoku niestandardowego, możesz również zmienić kolor w ten sposób (wymaga iOS 6):
źródło
Ustaw kolor tła i tekstu obszaru przekroju: (Dzięki
William Jockusch
iDj S
)źródło
Szybki 4
Aby zmienić kolor tła , kolor tekstu etykiet i czcionki dla widoku nagłówku UITableView sekcji, wystarczy zastąpić
willDisplayHeaderView
dla widoku tabeli tak:To działało idealnie dla mnie; mam nadzieję, że ci to pomoże!
źródło
Oto jak dodać obraz w widoku nagłówka:
źródło
W systemie iOS8 (Beta) i Swift wybierz żądany kolor RGB i wypróbuj to:
}
(„Zastąpienie” istnieje, ponieważ w moim projekcie używam UITableViewController zamiast normalnego UIViewController, ale nie jest to obowiązkowe do zmiany koloru nagłówka sekcji)
Tekst nagłówka nadal będzie widoczny. Pamiętaj, że musisz dostosować wysokość nagłówka sekcji.
Powodzenia.
źródło
SWIFT 2
Z powodzeniem mogłem zmienić kolor tła przekroju z dodanym efektem rozmycia (co jest naprawdę fajne). Aby łatwo zmienić kolor tła sekcji:
Następnie, aby uzyskać efekt rozmycia, dodaj do kodu:
źródło
Wiem, że udzielono odpowiedzi, na wszelki wypadek. W Swift użyj następujących
źródło
iOS 8+
źródło
Na podstawie odpowiedzi @Dj S przy użyciu Swift 3. Działa to świetnie na iOS 10.
źródło
Mam projekt wykorzystujący statyczne komórki widoku tabeli w iOS 7.x. willDisplayHeaderView nie uruchamia się. Jednak ta metoda działa dobrze:
źródło
źródło
Myślę, że ten kod nie jest taki zły.
źródło
Swift 4 sprawia, że jest to bardzo łatwe. Po prostu dodaj to do swojej klasy i ustaw kolor według potrzeb.
lub jeśli prosty kolor
Zaktualizowano dla Swift 5
lub jeśli prosty kolor
źródło
W iOS 7.0.4 utworzyłem niestandardowy nagłówek z własnym XIB. Nic tu wcześniej nie wspomniano. Musiała być podklasą UITableViewHeaderFooterView do pracy z,
dequeueReusableHeaderFooterViewWithIdentifier:
i wydaje się, że klasa jest bardzo uparta jeśli chodzi o kolor tła. W końcu dodałem UIView (można to zrobić za pomocą kodu lub IB) o nazwie customBackgroudView, a następnie ustawiłem jego właściwość backgroundColor. W layoutSubviews: Ustawiłem ramkę tego widoku na granice. Działa z iOS 7 i nie powoduje żadnych usterek.źródło
Wystarczy zmienić kolor warstwy widoku nagłówka
źródło
Jeśli ktoś potrzebuje szybkiego, zachowuje tytuł:
źródło
Dostałem wiadomość od Xcode poprzez log konsoli
Następnie po prostu tworzę nowy UIView i kładę go jako tło HeaderView. Nie jest to dobre rozwiązanie, ale jest łatwe, jak powiedział Xcode.
źródło
W moim przypadku działało to tak:
źródło
Wystarczy ustawić kolor tła widoku tła:
źródło
Z RubyMotion / RedPotion, wklej to do swojego TableScreen:
Działa jak marzenie!
źródło
Dla szybkiego 5+
W
willDisplayHeaderView
metodzieMam nadzieję, że to Ci pomoże :]
źródło
Chociaż
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
będzie również działać, możesz to osiągnąć bez implementacji innej metody delegowania. w twojejfunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
metodzie możesz użyćview.contentView.backgroundColor = UIColor.white
zamiast,view.backgroundView?.backgroundColor = UIColor.white
która nie działa. (Wiem, żebackgroundView
jest to opcjonalne, ale nawet jeśli tam jest, nie budzi się bez wdrożeniawillDisplayHeaderView
źródło