2016-11-17 1 views
0

J'ai le code ci-dessous dans mon AppDelegate.swift:Personnaliser chaque UISearchBar unique De AppDelegate ne fonctionne pas

func customizeBars() { 
     let bartintColor = UIColor(colorLiteralRed: 20/255, green: 160/255, blue: 160/255, alpha: 1) 
     UISearchBar.appearance().tintColor = bartintColor 
     window!.tintColor = UIColor(red: 10/255, green: 80/255, blue: 80/255, alpha: 1) 
} 

J'appeler cette fonction (customizeBars()) dans ma méthode didFinishLaunchingWithOptions:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     customizeBars() 
     return true 
} 

J'ai aussi ce dans l'UISearchBArDelegate si cela fait une différence:

func position(for bar: UIBarPositioning) -> UIBarPosition { 
    return UIBarPosition.topAttached 
} 

Mais pour une raison quelconque, lorsque je cours mon application, il ne change pas le tintColor de l'un des UISearchBars que j'ai dans mon application ou ma couleur de couleur window. Y a-t-il quelque chose que je fais de mal?

enter image description here

+0

Voulez-vous changer la couleur de la couleur du texte Textfield, annuler le bouton et chercher la couleur de l'icône seulement? –

+0

@Saleh Oui, je veux changer ces choses: Couleur du texte du champ, bouton d'annulation, couleur de l'icône de recherche seulement, et la partie entourant l'UISearchBar comme la partie grise dans l'image ci-dessus dans ma question. Comme on le voit sur la photo, la seule chose qui a changé est la couleur du curseur. – CapturedTree

+0

Vous devriez être capable de créer une extension de UISearchBar qui change la couleur lors de l'initialisation. –

Répondre

0

Vous pouvez changer la couleur de la barre de recherche en utilisant ce ci-dessous ligne de code -

UISearchBar.appearance().barTintColor = UIColor.red // Change the color here

Mais j'ai vu que, la couleur de teinte (pour annuler le bouton, icône de recherche et la couleur du texte) ne fonctionne pas dans iOS 10, swift 3. Il travaillait auparavant dans les anciennes versions. Laissez-moi essayer si je peux trouver quelque chose pour changer la couleur de la barre de recherche.

+0

Je ne vois pas de propriété 'barTintColor' sur' UISearchBar.appearance() '. Je ne vois que 'tintColor'. Aussi, quand je fais cela, j'ai remarqué que la couleur change, sauf qu'elle est cachée derrière la partie grise sur laquelle se trouve le 'UISearchBar'. Dois-je supprimer la vue d'arrière-plan de l'UISearchBar? – CapturedTree

+0

barTintColor est une propriété de UISearchbar pour changer la couleur de la barre et la même chose se passe pour moi, elle ne s'affiche pas dans la boîte à suggestions UIsearchbar. Mais vous ouvrez la classe UISearchbar, vous verrez alors que cette fonction est disponible. Vous pouvez supprimer l'affichage en arrière-plan de UISearchbar. –

+0

Il semble que vous deviez changer manuellement la couleur du reste des éléments pour chaque barre de recherche. Pas moyen de le changer pour tous en utilisant la fonction appearance(). Cela doit être un bug d'Apple. –