Tengo una vista de tabla con una barra de búsqueda en la parte superior. Mi requisito es no mostrar la barra de búsqueda cuando alguien abre la página, pero cuando alguien desliza la tabla hacia abajo, la barra de búsqueda debería estar visible.Mostrar la barra de búsqueda solo cuando el usuario abre la tabla
11
A
Respuesta
22
En el método viewDidAppear:
de su controlador, configure la propiedad contentOffset (en UIScrollView) de su vista de tabla para ocultar la barra de búsqueda.
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.tableView.contentOffset = CGPointMake(0, SEARCH_BAR_HEIGHT);
}
4
relacionada a murat's answer, aquí es una versión más portátil y correcta que va a acabar con la animada compensación de la carga del punto de vista (que asume la barra de búsqueda tiene una propiedad de salida se llama searchBar
):
- (void)viewWillAppear:(BOOL)animated
{
self.tableView.contentOffset = CGPointMake(0, self.searchBar.frame.size.height);
}
ACTUALIZAR:
Para dar cabida a tocar en el icono de búsqueda en el índice de la sección, se debe implementar el siguiente método, que restaura el desplazamiento del contenido:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title
atIndex:(NSInteger)index
{
index--;
if (index < 0) {
[tableView
setContentOffset:CGPointMake(0.0, -tableView.contentInset.top)];
return NSNotFound;
}
return index;
}
Cuestiones relacionadas
- 1. ¿Cómo mostrar searchResultsTableView cuando la barra de búsqueda está activada?
- 2. Fuerza vista de la acción Mostrar barra de búsqueda
- 3. Mostrar el teclado virtual en la activación de la barra de acciones de búsqueda con SearchView
- 4. Solo mostrar pestañas en la barra de acciones
- 5. UISearchDisplayController: cómo mostrar el resultado de la búsqueda con solo el botón de alcance seleccionado pero cadena de búsqueda vacía
- 6. El botón Cancelar de la barra de búsqueda no funciona
- 7. Mostrar UISearchDisplayTableView cuando la cadena de búsqueda está vacía
- 8. Las imágenes en XAML ResourceDictionary desaparecen en la barra de herramientas cuando se abre el menú
- 9. Solo doblar comentarios cuando se abre el archivo en Vim
- 10. Cómo mostrar siempre la barra de desplazamiento
- 11. ¿Barra de notificaciones de Android abre la última actividad activa?
- 12. UITableView sección índice se superpone a la barra de búsqueda
- 13. OSX: ¿Cómo "mostrar" un elemento de la barra de estado?
- 14. ¿Cómo mostrar la barra amarilla ActiveX?
- 15. cómo agregar barra de búsqueda en uitableview?
- 16. Barra de navegación que no muestra la propiedad cuando pushViewController
- 17. Cómo mostrar la barra de desplazamiento en UITableView
- 18. cómo limitar la barra de búsqueda
- 19. Personalizar la barra de búsqueda en Android
- 20. Android: mostrar/ocultar la barra de estado/barra de estado
- 21. La excepción IsolatedStorageFileStream se lanza cuando se abre el archivo?
- 22. Mantener el término de búsqueda visible cuando UISearchDisplayController está inactivo
- 23. ¿Cómo mostrar div cuando el usuario llega a la parte inferior de la página?
- 24. ¿Cuál es la diferencia entre la barra de búsqueda frente a la barra de búsqueda y el controlador de pantalla de búsqueda?
- 25. iPhone: ocultar/mostrar la barra de herramientas
- 26. ¿Es posible mostrar la barra de aplicaciones solo para un elemento de pivote?
- 27. Obtiene automáticamente la última versión cuando abre la solución/proyecto
- 28. ¿Cómo mostrar la barra de progreso con jQuery?
- 29. Barra de navegación mostrar/ocultar
- 30. Mostrar una barra de progreso cuando se carga una actividad
Uso de viewDidAppear: puede causar que el cambio de contentOffset suceda visiblemente al usuario de la aplicación. Usando viewWillAppear: hará el cambio antes de que se muestre nada al usuario. – Shoerob
También puede hacer esto en 'viewDidLoad' para hacerlo solo una vez inicialmente, y aún recordar su lugar en tableView cuando regrese a la vista (por ejemplo en un' UINavigationController'). – devios1