2011-05-13 5 views
6

Estoy cambiando mis tableviews contentInset, de modo que cuando un usuario se desplaza más allá de los límites superiores de la tabla, la tabla se inserta para mostrar UISearchBar oculto sobre tableView.Configuración de UITableView contentInset también insets section header view

Todo funciona bien aparte de las vistas del encabezado de sección. cuando se desplaza hacia abajo, la parte superior del intervalo establecido sectionHeaderView es insertada a la misma distancia desde la parte superior de la pantalla como mi inserción tableview, aquí es en la posición de partida:

Header view in correct position

En la imagen de arriba la vista sectionheader es establecer en su posición correcta, y el recuadro de la vista de tabla se ha configurado para mostrar el campo de búsqueda.

enter image description here

Se puede ver en esta segunda pantalla, donde la parte superior del intervalo establecido headerview se establece más bajo debido a la inserción tableview 43 píxeles, donde como debe pegarse a la parte superior de la pantalla ocultando la "relacionada" celular y rebotando cuando se libera.

Me parece que necesito para compensar el recuadro de alguna manera, no sólo estoy seguro de cómo ..

+0

que estoy enfrentando el mismo problema exacto (aunque no es para ocultar una barra de búsqueda) y me gustaría encontrar una respuesta – romrom

Respuesta

6

estoy asumiendo lo que quiere es un campo de búsqueda como en la aplicación de correo; un campo de búsqueda en la parte superior de la lista que por defecto no está visible?

La solución no es utilizar contentInset, pero en su lugar:

  1. Establecer un UISearchBar como los tableviews tableHeaderView.
  2. También agregue un UISearchDisplayController al controlador de vista de tabla.
  3. Establecer de manera predeterminada contentOffset a 44 puntos hacia abajo, para ocultar la barra de búsqueda.

Apple tiene una buena aplicación de ejemplo como punto de partida aquí: http://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html

+0

Ah sí de Por supuesto, estaba demasiado pensando que esto – Alex

+4

No es una solución, eso es una solución. Hay varios casos en los que desearía usar contentInset y esto causa muchos problemas. Para solucionarlo, la siguiente es una solución mejor: http://b2cloud.com.au/how-to-guides/uitableview-section-headerpositions – strange

+0

@strange Debería publicar una nueva respuesta de nivel superior que describa esta técnica, ya que es una respuesta válida para muchas personas que llegan a esta pregunta tratando de descubrir cómo hacer esto. – erikprice

Cuestiones relacionadas