7

Ho impostato un'immagine di sfondo per la barra di ricerca e il campo di ricerca utilizzando il codice riportato di seguito. Sto usando Xcode5 DP2 e ios 7.Pulsante Annulla UISearchbar Immagine personalizzata

[[UISearchBar appearance] setSearchFieldBackgroundImage:[UIImage imageNamed:@"fieldBg"] forState:UIControlStateNormal]; 
[[UISearchBar appearance] setBackgroundImage:[UIImage imageNamed:@"searchBarBg"]]; 

Questo codice funziona correttamente. Ma voglio anche personalizzare l'immagine del pulsante Annulla. Per questo ho usato il seguente codice in viewWillAppear e searchBarTextDidBeginEditing. Funziona per la prima volta durante il caricamento.

Se il pulsante di annullamento fa clic una volta, l'immagine personalizzata non verrà visualizzata in seguito. Mi sono collegato al _searchBar.subviews ed ho ottenuto i risultati come

po [_searchBar subviews] 
<__NSArrayM 0x210b1120>(
<UISearchBarBackground: 0x1fd6ff80; frame = (0 0; 768 44); userInteractionEnabled = NO; layer = <CALayer: 0x1fdafaf0>>, 
<UISearchBarTextField: 0x1fd6f2f0; frame = (5 -3; 758 50); text = ''; clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x1fdc10b0>; layer = <CALayer: 0x1fd6f480>> 
) 

Da questo ho capito che il pulsante Annulla non è venuta sotto le subviews dove sto controllando. Ho provato il codice sopra in tutti i possibili metodi delegati ma non sono stato in grado di risolvere il problema.

risposta

2

È possibile utilizzare la funzione [self setShowsCancelButton:NO animated:NO]; nella funzione layoutSubviews e aggiungere un numero personalizzato UIButton nel luogo desiderato. Devi solo prendere il dolore di scrivere codice per la funzionalità del pulsante Annulla.

Problemi correlati