Wie kann ich die Farbe eines Abschnittskopfes in UITableView ändern?
BEARBEITEN : Die Antwort von DJ-S sollte für iOS 6 und höher berücksichtigt werden. Die akzeptierte Antwort ist veraltet.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
quelle
quelle
Antworten:
Hoffentlich diese Methode aus dem
UITableViewDelegate
Protokoll beginnen:Ziel c:
Schnell:
Aktualisiert 2017:
Swift 3:
Ersetzen Sie
[UIColor redColor]
durch was auch immerUIColor
Sie möchten. Möglicherweise möchten Sie auch die Abmessungen von anpassenheaderView
.quelle
[UIColor xxxColor]
jedoch gut, wenn ich eine benutzerdefinierte Farbe probiere, wie ich sie von Photoshop erhalten kann (mit derUIColor red:green:blue:alpha:
ist sie also nur weiß. Mache ich etwas falsch?Dies ist eine alte Frage, aber ich denke, die Antwort muss aktualisiert werden.
Bei dieser Methode müssen Sie keine eigene benutzerdefinierte Ansicht definieren und erstellen. In iOS 6 und höher können Sie die Hintergrundfarbe und die Textfarbe einfach ändern, indem Sie die definieren
Abschnitt delegieren Methode
Zum Beispiel:
Entnommen aus meinem Beitrag hier: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Schnelles 3/4
quelle
header.contentView.backgroundColor = [UIColor blackColor];
Option Ihnen einen undurchsichtigen Header gebenSo ändern Sie die Textfarbe.
quelle
Sie können dies tun, wenn Sie eine Kopfzeile mit einer benutzerdefinierten Farbe wünschen:
Diese Lösung funktioniert seit iOS 6.0 hervorragend.
quelle
Die folgende Lösung funktioniert für Swift 1.2 mit iOS 8+
quelle
Das Festlegen der Hintergrundfarbe in UITableViewHeaderFooterView ist veraltet. Bitte verwenden Sie
contentView.backgroundColor
stattdessen.quelle
Vergessen Sie nicht, diesen Code vom Delegaten hinzuzufügen, da sonst Ihre Ansicht in einigen Fällen im Verhältnis zur Höhe Ihrer Ansicht / Beschriftung abgeschnitten wird oder hinter der Tabelle angezeigt wird.
quelle
Sie können dies in ca. 2 Sekunden auf main.storyboard tun.
quelle
Wenn Sie keine benutzerdefinierte Ansicht erstellen möchten, können Sie die Farbe auch folgendermaßen ändern (erfordert iOS 6):
quelle
Stellen Sie den Hintergrund und die Textfarbe des Abschnittsbereichs ein: (Dank an
William Jockusch
undDj S
)quelle
Swift 4
Um die zu ändern Hintergrundfarbe , Textbeschriftung Farbe und Schriftart für die Header - Ansicht eines UITableView Abschnitts, außer Kraft setzt einfach
willDisplayHeaderView
für Ihre Tabellenansicht wie folgt:Das hat bei mir perfekt funktioniert; hoffe es hilft dir auch!
quelle
So fügen Sie ein Bild in der Kopfzeile hinzu:
quelle
Wählen Sie für iOS8 (Beta) und Swift die gewünschte RGB-Farbe und versuchen Sie Folgendes:
}}
(Die "Überschreibung" ist vorhanden, da ich in meinem Projekt den UITableViewController anstelle eines normalen UIViewControllers verwende, aber es ist nicht zwingend erforderlich, um die Farbe der Abschnittsüberschriften zu ändern.)
Der Text Ihrer Kopfzeile wird weiterhin angezeigt. Beachten Sie, dass Sie die Höhe der Abschnittsüberschriften anpassen müssen.
Viel Glück.
quelle
SWIFT 2
Ich konnte die Hintergrundfarbe des Abschnitts erfolgreich mit einem zusätzlichen Unschärfeeffekt ändern (was wirklich cool ist). So ändern Sie die Hintergrundfarbe des Abschnitts einfach:
Fügen Sie dann für den Unschärfeeffekt dem Code hinzu:
quelle
Ich weiß, dass es beantwortet wird, nur für den Fall, dass Sie in Swift Folgendes verwenden
quelle
iOS 8+
quelle
Basierend auf der Antwort von @Dj S mit Swift 3. Dies funktioniert hervorragend unter iOS 10.
quelle
Ich habe ein Projekt mit statischen Tabellenansichtszellen in iOS 7.x. willDisplayHeaderView wird nicht ausgelöst. Diese Methode funktioniert jedoch in Ordnung:
quelle
quelle
Ich denke, dieser Code ist nicht so schlecht.
quelle
Swift 4 macht es sehr einfach. Fügen Sie dies einfach Ihrer Klasse hinzu und stellen Sie die Farbe nach Bedarf ein.
oder wenn eine einfache Farbe
Aktualisiert für Swift 5
oder wenn eine einfache Farbe
quelle
In iOS 7.0.4 habe ich einen benutzerdefinierten Header mit einem eigenen XIB erstellt. Nichts, was hier zuvor erwähnt wurde, hat funktioniert. Es musste die Unterklasse von UITableViewHeaderFooterView sein, um mit dem zu arbeiten,
dequeueReusableHeaderFooterViewWithIdentifier:
und es scheint, dass die Klasse in Bezug auf die Hintergrundfarbe sehr hartnäckig ist. Schließlich habe ich eine UIView (Sie können dies entweder mit Code oder IB tun) mit dem Namen customBackgroudView hinzugefügt und dann die backgroundColor-Eigenschaft festgelegt. In layoutSubviews: Ich habe den Rahmen dieser Ansicht auf Grenzen gesetzt. Es funktioniert mit iOS 7 und gibt keine Störungen.quelle
Ändern Sie einfach die Farbe der Ebene der Kopfansicht
quelle
Wenn jemand schnell braucht, behält Titel:
quelle
Ich habe eine Nachricht von Xcode über das Konsolenprotokoll erhalten
Dann erstelle ich einfach ein neues UIView und lege es als Hintergrund für HeaderView. Keine gute Lösung, aber es ist einfach, wie Xcode sagte.
quelle
In meinem Fall hat es so funktioniert:
quelle
Stellen Sie einfach die Hintergrundfarbe der Hintergrundansicht ein:
quelle
Fügen Sie dies mit RubyMotion / RedPotion in Ihren TableScreen ein:
Klappt wunderbar!
quelle
Für schnelle 5 +
In
willDisplayHeaderView
MethodeIch hoffe das hilft dir :]
quelle
Obwohl dies
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
auch funktioniert, können Sie dies erreichen, ohne eine andere Delegatmethode zu implementieren. In Ihrerfunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
Methode können Sieview.contentView.backgroundColor = UIColor.white
stattdessen verwenden,view.backgroundView?.backgroundColor = UIColor.white
was nicht funktioniert. (Ich weiß, dass diesbackgroundView
optional ist, aber selbst wenn es vorhanden ist, wird dies nicht ohne Implementierung aktiviertwillDisplayHeaderView
quelle