Comment changer le Placeholder UISearchBar et la couleur de la teinte de l'image?
J'ai essayé les résultats de la recherche pendant des heures, mais je ne peux pas obtenir cette place. Peut-être qu'il n'est pas possible. Je suis en train de changer la teinte de la couleur du texte de l'espace réservé et loupe d'un UISearchBar. Je ne suis ciblage iOS 8.0+ si ce qui compte. Voici mon code et à quoi elle ressemble maintenant:
let searchBar = UISearchBar()
searchBar.placeholder = "Search"
searchBar.searchBarStyle = UISearchBarStyle.Minimal
searchBar.tintColor = UIColor.whiteColor()
J'aimerais pour la recherche et la loupe pour être blanc, ou peut-être d'un vert foncé.
source d'informationauteur Kyle Bashour
Vous devez vous connecter pour publier un commentaire.
Si vous avez une image personnalisée que vous pourriez utiliser, vous pouvez régler l'image et de modifier le texte de l'espace réservé couleur à l'aide de quelque chose de similaire à la suivante:
Dans cet exemple, j'ai utilisé purpleColor, au lieu de cela, vous pouvez utiliser le
+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha
méthode pour créer votre propre couleur vert foncé.EDIT: je viens de réaliser que vous avez écrit dans swift... duh. Rapidement tapé ça donc je n'ai pas laisser la réponse en seulement Obj-C.
Swift 3.0
Swift 4/xcode 9.0, Swift 3/xcode 8.2.1
UISearchBar la personnalisation de l'échantillon
Utilisation
Résultat
Swift 3: Si vous souhaitez modifier l'emplacement réservé, clearbutton et loupe
Vous pouvez changer la couleur du texte, sans violer l'api privée règle:
J'ai trouvé un moyen de changer le textfiled dans la barre de recherche.
Il fonctionne en swift 3 et Xcode8.
Tout d'abord, la sous-classe le UISearchBar classe.
UISearchBar inclure un point de vue qui a le rôle important textfield que vous vouliez. Suivants en fonction de l'index dans les sous-vues.
Là vous allez, profiter de de ce.
Je ne pouvais pas le faire fonctionner correctement avec aucune des solutions ci-dessus.
J'ai créé le suivant UISearchBar catégorie qui fonctionne correctement sur iOS 8.4 et 10.3:
UISearchBar+PlaceholderColor.h
UISearchBar+PlaceholderColor.m
UTILISATION:
REMARQUE IMPORTANTE:
Assurez-vous que vous appelez setPlaceholderColor: APRÈS votre UISearchBar a été ajouté à la vue et a créé son point de vue de la hiérarchie.
Si vous ouvrez votre barre de recherche de la programmation, de l'appeler APRÈS votre becomeFirstResponder appel, en tant que tel:
Sinon, si vous êtes exploitant UISearchBarDelegate:
Petite mise à jour de Vassili Bodnarchuk de la grande réponse.
Swift 4+
NSForegroundColorAttributeName
a été modifié pourNSAttributedStringKey.foregroundColor
Pour tout le monde juste essayer de modifier le texte et d'avoir de la difficulté à voir la mise à jour de l'espace réservé, il a travaillé pour moi en le mettant ici au lieu de
viewDidLoad
.Fait un Apple Swift version 4.1 barre de recherche de l'extension :-
import Foundation
import UIKit
extension UISearchBar{
func setTextField(placeHolderColor:UIColor = .gray,placeHolder:String = "Search Something",textColor:UIColor = .white,backgroundColor:UIColor = .black,
placeHolderFont:UIFont = UIFont.systemFont(ofSize: 12.0),
textFont:UIFont = UIFont.systemFont(ofSize: 12.0) ){
for item in self.subviews{
for mainView in (item as UIView).subviews{
mainView.backgroundColor = backgroundColor
if mainView is UITextField{
let textField = mainView as? UITextField
if let _textF = textField{
_textF.text = "success"
_textF.textColor = textColor
_textF.font = textFont
_textF.attributedPlaceholder = NSMutableAttributedString.init(string: placeHolder, attributes: [NSAttributedStringKey.foregroundColor : placeHolderColor,
NSAttributedStringKey.font : placeHolderFont])
}
}
}
}
}
}
Puis vous pouvez les utiliser pour votre barre de recherche comme ceci :-
controller.searchBar.setTextField(placeHolderColor: .white, placeHolder: "Search A Pet", textColor: .white, backgroundColor: .green, placeHolderFont: UIFont.systemFont(ofSize: 14.0), textFont: UIFont.systemFont(ofSize: 14.0))
Espère que cette contribution va travailler pour mes autres amis 🙂 amusez-vous bien!!
Dans Swift 4, en supposant que votre recherche contrôleur est défini comme ceci:
puis définissez l'espace réservé de texte comme suit: