Die Hintergrundfarbe der Suchleiste kann nicht geändert werden

7

Ich habe eine Suchleiste:

%Vor%

und ich möchte die Hintergrundfarbe des Texteingabeteils ändern. Dafür habe ich es versucht:

%Vor%

aber diese beiden Varianten funktionieren nicht. Wie kann ich die Hintergrundfarbe meines UISearchBar textInput-Teils ändern und was habe ich falsch gemacht?

    
Orkhan Alizade 17.11.2015, 07:24
quelle

10 Antworten

8

Siehe Demoprojekt: Demo

Sie fügen den folgenden Code in ViewDidLoad hinzu und ändern die Hintergrundfarbe für das Textfeld ROT,

%Vor%

Rote Farbe von TextField in SearchBar.

    
Kirit Modi 17.11.2015 07:38
quelle
7

Wenn Sie es nur in Ihrem ViewController ändern möchten und nicht möchten, dass etwas anderes wirksam wird, verwenden Sie

%Vor%

Aber wenn Sie möchten, dass es in der ganzen App geändert wird und auf iOS 9.0 oder höher abzielt, dann sollten Sie "appearanceWhenContainedInInstancesOfClasses" wie

verwenden %Vor%     
Imran 17.11.2015 07:44
quelle
7

Für Swift 3+ verwenden Sie Folgendes:

%Vor%     
Alien 31.03.2017 08:37
quelle
4

Genau so

%Vor%     
Kingiol 17.11.2015 08:27
quelle
2

Eine sehr häufige Antwort auf diese Frage im Internet ist diese oben beschriebene Lösung:

%Vor%

Aber es hat nicht funktioniert, dass ich XCode 7 und iOS 9 benutzt habe, und mir ist aufgefallen, dass viele andere im Internet darüber berichtet haben, dass es auch für sie nicht funktioniert hat. Ich habe festgestellt, dass die Untersicht UITextField erst dann erstellt wird (oder zumindest nicht als Unteransicht hinzugefügt wird), wenn sie referenziert wird. Sie kann z. B. durch das Platzhalterfeld referenziert werden, z. B. vor der Suche die Untersichten für die UITextField-Klasse:

%Vor%     
Ted 30.07.2016 16:44
quelle
2

Um dies nur mit Apple-APIs zu erreichen, erstellen Sie ein Image und verwenden setSearchFieldBackgroundImage :

%Vor%

Es wird sogar die Ecken richtig animieren, wenn Sie ein abgerundetes Rechteck erstellen und Schaltflächen dynamisch ein- und ausblenden.

Beispiel für dieses Bild:

    
SuperDuperTango 12.01.2017 08:45
quelle
1

Stellen Sie eine beliebige Farbe ein. SWIFT 3

%Vor%     
ale_stro 07.08.2017 20:46
quelle
1

FWIW Ich löse dieses Problem, indem ich eine berechnete Variable namens textField erstelle.

%Vor%     
Steve 17.08.2017 15:52
quelle
0

Versuchen Sie Ihren Code wie unten auf dem Spielplatz. Wenn das immer noch nicht funktioniert, füge mehr Code zu deiner Frage hinzu ...

%Vor%     
Anni S 17.11.2015 08:03
quelle
0

Ich mache es so (Swift 3+ Lösung):

%Vor%     
Nosov Pavel 15.05.2017 15:01
quelle

Tags und Links