2011-10-01 12 views
7

Agregué UISearchBar como tableHeaderView para UITableView en xib, simplemente soltando UISearchBar en UITableView. Está funcionando bien, cuando la tabla tiene más de 6 filas. Pero cuando hay menos de filas, UITableView no se desplaza.Agregar UISearchBar como tableHeaderView en xib no funciona

Al mismo tiempo, si agrego el UISearchBar como tableHeaderView para UITableView programáticamente en un archivo .m usando la siguiente declaración, TODO FUNCIONA BIEN.

tableViewTemp.tableHeaderView = searchBarFriends; 

parece muy extraño para mí, Cuál podría ser el problema?

Por favor, consejo, gracias.

Respuesta

2

Aquí hay un pequeño truco que hice;) No haga que su SearchBar una vista secundaria de la UITableView. Simplemente agregue instancias de ambos en su archivo de punta y armelos como IBOutlet en su UITableViewController. Entonces, lo que vas a hacer es configurar SearchBar como la vista de encabezado para tu tabla, de esa manera no tienes que preocuparte de que los marcos se superpongan e interfieran con los eventos táctiles. Así es como se hace:

crear la propiedad en el archivo de cabecera TableView

@property (nonatomic, retain) IBOutlet UISearchBar *searchBar; 

Establecer la vista de cabecera para su mesa:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    return self.searchBar; // The property you wired up in IB 
} 

establecer la altura de su encabezado o (UISearchBar)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; // The height of the search bar 
} 

Eso es todo lo que necesita. Ahora bien, esta puede no ser la mejor solución si tiene una vista de tabla agrupada o una tabla con varias secciones, pero es una solución limpia para una tabla simple. De lo contrario, tendría que ajustar el marco de la barra de búsqueda Y la vista de tabla en el código porque se superponen y es por eso que tiene problemas táctiles. ¡Espero que esto ayude!

+0

Gracias Jerry, probaré esto. –

+0

Lo he usado en mis aplicaciones, debería funcionar como un encanto. Marque esto como aceptado si lo hace;) – jerrylroberts

1

si se agrega barra de búsqueda, como a continuación jerarquía que funcionará

enter image description here

+0

Añadí como este único amigo, pero estaba haciendo que UITableView no se puede desplazar cuando hay menos de 6 registros. –

+0

en mi caso funciona bien, incluso una fila también – Narayana

+0

Ok, gracias Narayana, por lo que podría ser algún otro problema. Verificaré mi código. –

0

que tenían casi el mismo problema (para mí no sería desplazarse en absoluto con cualquier número de filas, pero como lo haría pronto como eliminé la barra de búsqueda). Fijo que añadir esta en viewDidLoad:

self.tableView.alwaysBounceVertical = YES; 
+0

Gracias pt2ph8, voy a probar esto también. –

Cuestiones relacionadas