Posso rimuovere l'immagine a sinistra di uno UISearchbar
e aggiungere una nuova immagine?Rimozione dell'immagine a sinistra di Uisearchbar
risposta
Se intendi la lente d'ingrandimento, allora no. Non ci sono API pubbliche da modificare o rimuovere. Basta usare un UITextField
invece.
ok grazie ......... – a111
In realtà è possibile. È necessario esaminare tutte le sottoview della barra di ricerca e quindi il campo del testo di ricerca.
Non è possibile rimuovere facilmente l'immagine, ma si può facilmente inserire un UIImageView per sostituire l'immagine, in questo modo:
UIImageView *searchIcon = [[UIImageView alloc] initWithImage:[MBUIFactory imageNamed:@"ic_search_normal.png"]];
searchIcon.frame = CGRectMake(10, 10, 24, 24);
[self.searchBar addSubview:searchIcon];
[searchIcon release];
Ricordate - la vita è di circa barare;) ...
L'immagine ha essere allineati perfettamente ai pixel (giocare con i pixel), o la nuova immagine deve avere uno sfondo bianco in cui è necessario nascondere l'immagine originale ma che non interferisce con il resto della barra di ricerca (se si usa solo lo sfondo bianco per l'intera immagine, gli angoli di sinistra interferiranno con lo sfondo).
è possibile creare una sottoclasse UISearchBar e quindi utilizzare questo metodo:
- (void)setTextFieldLeftView:(UIView *)view
{
UITextField *searchField = nil;
for (UIView *subview in self.subviews)
{
if ([subview isKindOfClass:[UITextField class]])
{
searchField = (UITextField *)subview;
break;
}
}
if (searchField != nil)
{
searchField.leftView = view;
}
}
// hide magnifying glass
UITextField* searchField = nil;
for (UIView* subview in searchBar.subviews) {
if ([subview isKindOfClass:[UITextField class]]) {
searchField = (UITextField*)subview;
break;
}
}
if (searchField) {
searchField.leftViewMode = UITextFieldViewModeNever;
}
Questo nasconde lente di ingrandimento. Funziona bene.
in iOS 5.0 e versioni successive, è possibile personalizzare l'immagine barra di ricerca utilizzando
- (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state
in una specifica istanza di un UISearchBar o attraverso un gruppo utilizzando il UIAppearance
proxy.
Nota: se stai cercando di sbarazzarti di l'immagine del tutto (cioè non sostituirla con qualcos'altro), quindi questo metodo non funzionerà poiché se lo si imposta su 'nil', in realtà non rimuoverà l'immagine. – Senseful
È inoltre possibile attribuire un'immagine non nulla: [_searchBar setImage: [UIImage new] forSearchBarIcon: UISearchBarIconSearch state: UIControlStateNormal]; – Diwann
Funziona, ma qual è il modo consigliato per riallineare il testo al margine sinistro? –
in iOS6 almeno c'è una proprietà [searchbar setImage:<#(UIImage *)#> forSearchBarIcon:<#(UISearchBarIcon)#> state:<#(UIControlState)#>]
u possibile impostare :)
Per rimuovere completamente l'icona, è possibile utilizzare le seguenti righe di codice:
Objective-C:
// Remove the icon, which is located in the left view
[UITextField appearanceWhenContainedIn:[UISearchBar class], nil].leftView = nil;
// Give some left padding between the edge of the search bar and the text the user enters
[UISearchBar appearance].searchTextPositionAdjustment = UIOffsetMake(10, 0);
Swift:
// Remove the icon, which is located in the left view
UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).leftView = nil
// Give some left padding between the edge of the search bar and the text the user enters
UISearchBar.appearance().searchTextPositionAdjustment = UIOffsetMake(10, 0)
Ha funzionato! Grazie, Jeff. –
sostituire l'icona barra di ricerca con un'immagine trasparente 1x1 e compensare la posizione del testo
UIImage *blank = [UIImage imageNamed:@"blank"];
[self.searchBar setImage:blank forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
self.searchBar.searchTextPositionAdjustment = UIOffsetMake(-19, 0);
How to change the position or hide magnifier icon in UISearchBar in IOS 7?
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setLeftViewMode:UITextFieldViewModeNever];
questo è di gran lunga il metodo più semplice – Alnitak
Usa questo codice per nascondere l'icona della barra di ricerca: -
[searchBarItems setImage:[UIImage imageNamed:@"searchIcon.jpg"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
Scatta l'immagine trasparente con il nome searchIcon.jpg e l'icona nascondi il suo lavoro per me
a Swift 2.0 fare questo:
let textFieldInsideSearchBar = self.searchBar.valueForKey("searchField") as! UITextField
textFieldInsideSearchBar.leftViewMode = UITextFieldViewMode.Never
anche questo funziona molto bene, se lo si desidera su base per controllo – Alnitak
Perché qualcuno pensa che una risposta accettabile implichi 'valueForKey'? Questo ha il potenziale di rifiuto dell'app. – TheCodingArt
http://stackoverflow.com/questions/11923597/using-valueforkey-to-access-view-in-uibarbuttonitem-private-api-violation –
O a Swift 4.0 la semplice one-liner:
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).leftViewMode = .never
NOTA: Questo eliminerà l'icona della mano sinistra da ALL UITextFields
che sono contenuti all'interno UISearchBars
.
- 1. Come mantenere il segnaposto di UISearchBar allineato a sinistra
- 2. Rimozione spazio in alto a sinistra ea destra del div
- 3. Rimozione della ricorsione sinistra in DCG - Prolog
- 4. L'icona di ricerca UISearchBar non è allineata a sinistra in iOS7
- 5. Disabilita Scorrimento di UISearchbar aggiunto a UITableView
- 6. Posso collegarmi a Clear Button di UISearchBar?
- 7. Sottoview UISearchBar di UITableViewHeader?
- 8. Stringa di riempimento a sinistra
- 9. Disabilita UISearchBar
- 10. UISearchBar si sovrappone a UITableView quando attivo
- 11. come cambiare UISearchBar da rotondo a rettangolo?
- 12. Overflow GCC a sinistra
- 13. Metodi di concatenamento da sinistra a destra in Haskell (opposto a destra a sinistra)
- 14. UISearchBar immagine di sfondo chiaro
- 15. UISearchBar e supporto di dettatura
- 16. Blocco di equazioni di allineamento a sinistra
- 17. Utilizzo di NSFetchedResultsController con UISearchBar
- 18. conta in SINISTRA SINISTRA e DOVE
- 19. Rileva messa a fuoco UISearchBar sul campo di testo
- 20. Rimozione della ricorsione sinistra in un parser di espressioni di base
- 21. destra a sinistra Bar in
- 22. UILabels da destra a sinistra
- 23. Allineare una voce a sinistra di ActionBar
- 24. JScrollPane con barra di scorrimento a sinistra
- 25. trabocco Testo puntini di sospensione a sinistra
- 26. Riempimento di zeri a sinistra in postgreSQL
- 27. Spinner con freccia a sinistra
- 28. Colore testo UISearchBar
- 29. WPF - Espandi finestra a sinistra
- 30. UL ha margine a sinistra
Si prega di chiarire la vostra domanda. È difficile capire cosa stai cercando di chiedere. Forse pubblica il tuo codice con cui hai difficoltà o pubblica uno screenshot di qualcosa che ti aiuti a spiegare. – Jasarien
in Uisearchbar c'è un campo di testo e c'è un'immagine di ricerca. Posso rimuovere quell'immagine di ricerca e aggiungere una nuova immagine in quel punto – a111