A UISegmentedControl
hat ein neues Erscheinungsbild in iOS 13 und vorhandener Code zum Ändern der Farben des segmentierten Steuerelements funktioniert nicht mehr wie bisher.
Vor iOS 13 konnten Sie das tintColor
und festlegen , das für den Rahmen um das segmentierte Steuerelement, die Linien zwischen den Segmenten und die Hintergrundfarbe des ausgewählten Segments verwendet wird. Anschließend können Sie die Farbe der Titel jedes Segments mithilfe des Attributs Vordergrundfarbe mit ändern titleTextAttributes
.
Unter iOS 13 tintColor
macht das nichts. Sie können die segmentierten Steuerelemente so einstellen backgroundColor
, dass die Gesamtfarbe des segmentierten Steuerelements geändert wird. Ich kann jedoch keine Möglichkeit finden, die Farbe zu ändern, die als Hintergrund für das ausgewählte Segment verwendet wird. Das Festlegen der Textattribute funktioniert weiterhin. Ich habe sogar versucht, die Hintergrundfarbe des Titels festzulegen, aber das wirkt sich nur auf den Hintergrund des Titels aus, nicht auf den Rest der Hintergrundfarbe des ausgewählten Segments.
Kurz gesagt, wie können Sie die Hintergrundfarbe des aktuell ausgewählten Segments eines UISegmentedControl
in iOS 13 ändern ? Gibt es eine geeignete Lösung mit öffentlichen APIs, bei der nicht in die private Unteransichtsstruktur gegraben werden muss?
In iOS 13 gibt es keine neuen Eigenschaften für UISegmentedControl
oder UIControl
und keine der Änderungen in UIView
ist relevant.