2011-02-10 15 views
13

mi piacerebbe avere un UISearchBar sulla parte superiore del mio UITableView che nasconde quando si scorre verso il basso: La risposta è semplice, ho solo bisogno di aggiungerlo il mio punto di vista tabella di intestazione come questo:UISearchBar sulla parte superiore del UITableView che può nascondere, ma stare vicino a UINavigationBar

UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 45)]; 
self.tableView.tableHeaderView = search; 
[search release]; 

Ma il problema è che quando si scorrere verso l'alto la misura UISearchBar alla parte superiore del UITableView, e non la parte superiore del UINavigationBar. Per essere più chiari ho fatto uno schermo in Mail (non buono) e Game Center (buono).

enter image description here

voglio lo stesso che nel Game Center. Hai idea di come stanno facendo questo?

risposta

4

È necessario nascondere la barra di ricerca da sola quando si scorre la vista tabella. Quindi, non metterlo come intestazione UITableView. Puoi nasconderlo impostando la sua altezza a zero. In questo modo se la tua vista tabella è impostata per autorizzare, si espanderà.

Vorrei sperimentare con UITableView e UISearchBar come peer all'interno di un'altra vista. L'immagine di GameCenter non ha la barra di ricerca come intestazione della vista tabella, ma li ha come sottoview separati.

Si potrebbe anche guardare UISearchDisplayController ma penso che non abbia il comportamento che si desidera.

Modifica: This question è fondamentalmente la tua domanda e ha un po 'di codice nelle risposte.

+0

Quindi abbiamo bisogno di fare tutto "manualmente" non c'è nessun componente semplice farlo? –

+0

Puoi cercare in giro su github o bitbucket per vedere se qualcuno ha creato una libreria che puoi prendere in prestito. Altrimenti, penso che dovrai occupartene con il tuo codice personale. – Walter

0

L'UISearchBar sul lato destro si trova su un altro UIView, non fa parte di UITableView. Pertanto, è possibile aggiungere una vista secondaria per inserire UISearchBar e un'altra vista secondaria per UITableView.

1

Un'intestazione di vista tabella si sposta mentre si scorre verso il basso. È proprietà di tableview. Se si desidera posizionare una barra di ricerca con la barra di navigazione. Perché non posizionare la barra di ricerca appena sotto la barra di navigazione. Utilizza la barra di ricerca e la vista tabella separata.

+0

1. Sì, lo so e non desidero tale scorrimento/2. Perché voglio nascondere l'UIScrollBar mentre sto scorrendo verso il basso –

+1

Se vuoi nasconderlo mentre scorri verso il basso, prova a usare delegate scrollViewDidBeginScrolling, e all'interno il delegato se scrollView.contentOffset maggiore di zero rende la searchBar nascosta. –

Problemi correlati