Non so come modificare il colore originale di searchIcon
.Come cambiare il colore dell'icona UISearchBar?
risposta
È possibile utilizzare un'immagine personalizzata di un'icona di ricerca bianca, come la barra di ricerca non modificherà la vostra immagine in dotazione. Per impostare un'immagine personalizzata, utilizzare questo metodo. (Link to documentation.)
- (void)setImage:(UIImage *)iconImage
forSearchBarIcon:(UISearchBarIcon)icon
state:(UIControlState)state;
Esempio di codice:
[searchBar setImage:[UIImage imageNamed:@"SearchIcon"]
forSearchBarIcon:UISearchBarIconSearch
state:UIControlStateNormal];
In Swift:
searchBar.setImage(UIImage(named: "SearchIcon"), for: .search, state: .normal)
if(IOS_7) {
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
self.searchBar.backgroundImage = [UIImage imageWithColor:[UIColor redColor] cornerRadius:5.0f];
}
Anche se questo snippet di codice può risolvere la domanda, [compresa una spiegazione] (http://meta.stackexchange.com/questions/114762/explaining-entally-code-based-answers) aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. – gunr2171
Come da anwser di Federica .... Per fare questo in rapida
var image: UIImage = UIImage(named: "search")!
self.searchBar.setImage(image, forSearchBarIcon: UISearchBarIcon.Search, state: UIControlState.Normal)
Assicurarsi che quando si utilizza l'API setImage
, passare un'immagine con la modalità di rendering di UIImageRenderingModeAlwaysTemplate
. Per esempio:
[self.searchBar setImage:[[UIImage imageNamed: @"icon-search"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
soluzione migliore che ho trovato è stato qui Changing the color of the icons in a UItextField inside a UISearchBar
(Questa soluzione utilizza l'icona originale di UISearchBar, non c'è bisogno di fornire il tuo asset grafica)
Convertito Swift (Swift 3):
if let textFieldInsideSearchBar = self.searchBar.value(forKey: "searchField") as? UITextField,
let glassIconView = textFieldInsideSearchBar.leftView as? UIImageView {
//Magnifying glass
glassIconView.image = glassIconView.image?.withRenderingMode(.alwaysTemplate)
glassIconView.tintColor = .whiteColor
}
sulla scia alcune delle risposte qui
Se vuoi vedere e apportare le modifiche nello storyboard, sottrai innanzitutto la barra UISearch e fai come sopra.
Tuttavia aggiungere le modifiche in una variabile @IBInspectable e non dimenticare il @IBDesignable al top della classe e impostando la sottoclasse searchbar nella "ispettore identità"
ho aggiunto la sottoclasse di lavoro completo e codice qui sotto per sWIFT 3.0 Qui si sarà in grado di modificare il testo segnaposto, ricerca di testo e lente d'ingrandimento
import UIKit
@IBDesignable
class CustomSearchBar: UISearchBar {
@IBInspectable var placeholderColor: UIColor? {
didSet {
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: "placeholderLabel") as? UILabel
textFieldInsideSearchBarLabel?.textColor = placeholderColor
}
}
@IBInspectable var textColor: UIColor? {
didSet {
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.textColor = textColor
}
}
@IBInspectable var magnifyingGlassColor: UIColor? {
didSet {
if let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField,
let glassIconView = textFieldInsideSearchBar.leftView as? UIImageView {
//Magnifying glass
glassIconView.image = glassIconView.image?.withRenderingMode(UIImageRenderingMode.alwaysTemplate)
glassIconView.tintColor = magnifyingGlassColor
} }
}
}
per sWIFT 3
searchBar.setImage(UIImage(named: "location-icon-black"), for: .search, state: .normal)
Per solo cambiando il colore dell'icona di ricerca, senza alterare l'icona reale Swift 3:
if let textField = self.searchBar.value(forKey: "searchField") as? UITextField,
let iconView = textField.leftView as? UIImageView {
iconView.image = iconView.image?.withRenderingMode(UIImageRenderingMode.alwaysTemplate)
iconView.tintColor = UIColor.red
}
crea un risultato in questo modo:
Questo soultion lavorato per me su Xcode 8.2.1 in Swift 3.0.:
extension UISearchBar
{
func setPlaceholderTextColorTo(color: UIColor)
{
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.textColor = color
let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: "placeholderLabel") as? UILabel
textFieldInsideSearchBarLabel?.textColor = color
}
func setMagnifyingGlassColorTo(color: UIColor)
{
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
let glassIconView = textFieldInsideSearchBar?.leftView as? UIImageView
glassIconView?.image = glassIconView?.image?.withRenderingMode(.alwaysTemplate)
glassIconView?.tintColor = color
}
}
Esempio di utilizzo:
searchController.searchBar.setPlaceholderTextColorTo(color: mainColor)
searchController.searchBar.setMagnifyingGlassColorTo(color: mainColor)
Swift-3:
extension UISearchBar
{
func setMagnifyingGlassColorTo(color: UIColor)
{
// Search Icon
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
let glassIconView = textFieldInsideSearchBar?.leftView as? UIImageView
glassIconView?.image = glassIconView?.image?.withRenderingMode(.alwaysTemplate)
glassIconView?.tintColor = color
}
func setClearButtonColorTo(color: UIColor)
{
// Clear Button
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
let crossIconView = textFieldInsideSearchBar?.value(forKey: "clearButton") as? UIButton
crossIconView?.setImage(crossIconView?.currentImage?.withRenderingMode(.alwaysTemplate), for: .normal)
crossIconView?.tintColor = color
}
func setPlaceholderTextColorTo(color: UIColor)
{
let textFieldInsideSearchBar = self.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.textColor = color
let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: "placeholderLabel") as? UILabel
textFieldInsideSearchBarLabel?.textColor = color
}
}
chiamare questi metodo di estensione in questo modo:
searchBarTextField.setMagnifyingGlassColorTo(color: yourColor)
searchBarTextField.setClearButtonColorTo(color: yourColor)
searchBarTextField.setPlaceholderTextColorTo(color: yourColor)
- 1. Colore testo UISearchBar
- 2. come cambiare UISearchBar da rotondo a rettangolo?
- 3. come cambiare il colore di un QGraphicsTextItem
- 4. Come cambiare il colore di UITextview UIDataDetectorTypeLink?
- 5. come cambiare il colore dell'intestazione DataGridview winform?
- 6. xterm: come cambiare il colore di sfondo?
- 7. Come cambiare il colore del tasto ttk
- 8. Come cambiare il colore di un JSeparator?
- 9. Come cambiare il colore della cella jqGrid?
- 10. Come cambiare il colore delle maniglie EditText?
- 11. Come cambiare il colore della scheda attiva
- 12. Come cambiare il colore di sfondo FAB
- 13. Graphviz: Come cambiare il colore del bordo
- 14. Cambiare il colore dell'asse etichette
- 15. come cambiare BackButton colore iOS7
- 16. UISearchBar: modifica del colore di sfondo del campo di input
- 17. UISearchBar colorato come Contatti
- 18. Cambiare temporaneamente colore selezionabile
- 19. Cambiare il colore di cursore nella UITextField
- 20. Posso cambiare il colore del pulsante Bootstrap?
- 21. Cambiare il colore dell'immagine SVG con javascript
- 22. Cambiare il colore di sfondo su NSAttributedString
- 23. Cambiare il colore della cella JTable
- 24. Cambiare il colore della pallottola della lista
- 25. Cambiare il colore di scorrimento JQuery
- 26. Impossibile cambiare il colore del testo UILabel
- 27. Cambiare colore impaginazione Bootstrap
- 28. Cambiare il colore dei pixel Python
- 29. Cambiare il colore dell'interfaccia in Eclipse
- 30. Cambiare il colore del testo in Eclipse
u può aggiungere un po 'esempio .. –
Non ho mai dovuto usare SearchBar quindi non ho un examp pronto per postare, ma https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchBar_Class/#//apple_ref/occ/instm/UISearchBar/setImage:forSearchBarIcon:state: forse questo può aiutarti –
Forse questo metodo dovrebbe essere migliore: '- (UIImage *) imageForSearchBarIcon: icona (UISearchBarIcon) stato: (UIControlState) state' –