2011-02-10 10 views
13

me gustaría tener un UISearchBar en la parte superior de mi UITableView cuales esconde cuando se desplaza hacia abajo: La respuesta es fácil, sólo hay que añadirlo en mi vista de la tabla de cabecera de esta manera:UISearchBar en la parte superior de UITableView que puede ocultar, pero estar cerca de UINavigationBar

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

Pero el problema es que cuando se desplaza el UISearchBar ajuste a la parte superior de la UITableView, y no a la parte superior de la UINavigationBar. Para ser más claro hice una pantalla en Mail (no es bueno) y Game Center (bueno).

enter image description here

Quiero lo mismo que en el centro de juego. ¿Tienes alguna idea de cómo están haciendo esto?

Respuesta

4

Tendrá que ocultar la barra de búsqueda usted mismo cuando se desplaza por la vista de tabla. Por lo tanto, no lo pongas como un encabezado UITableView. Puede ocultarlo estableciendo su altura en cero. De esta forma, si su tabla vista está configurada para aumentar automáticamente, se expandirá.

Me gustaría experimentar con tener UITableView y UISearchBar como iguales dentro de otra vista. La imagen de GameCenter no tiene la barra de búsqueda como encabezado de la vista de tabla, sino que las tiene como subvistas separadas.

También puede consultar UISearchDisplayController pero creo que no tiene el comportamiento que desea.

Editar: This question es básicamente su pregunta y tiene algún código en las respuestas.

+0

Así que tenemos que hacer todo "manualmente", no hay un componente simple ¿hacer eso? –

+0

Puede buscar en github o bitbucket para ver si alguien ha creado una biblioteca que puede pedir prestada. De lo contrario, creo que debes ocuparte de tu propio código. – Walter

0

UISearchBar del lado derecho está en el otro UIView, no es parte de UITableView. Por lo tanto, puede agregar una vista secundaria para colocar UISearchBar y otra vista secundaria para UITableView.

1

Un encabezado de vista de tabla se moverá mientras se desplaza hacia abajo. Es propiedad de TableView. Si desea colocar una barra de búsqueda con la barra de navegación. ¿Por qué no coloca la barra de búsqueda justo debajo de la barra de navegación? Use la barra de búsqueda y la vista de tabla por separado.

+0

1. Sí, lo sé y no quiero ese desplazamiento/2. Porque quiero ocultar el UIScrollBar cuando estoy desplazándome hacia abajo –

+1

Si desea ocultar mientras se desplaza hacia abajo, intente con delegate scrollViewDidBeginScrolling, y dentro el delegado if scrollView.contentOffset mayor que cero hace que la barra de búsqueda esté oculta. –

Cuestiones relacionadas