¿Cuál es la forma más precisa de obtener el título o índice de la sección más alta en UITableView? No me refiero a la sección en el índice 0, sino al encabezado de sección que actualmente está anclado en la parte superior mientras se desplaza.Obtenga la sección actual de UITableView
Respuesta
Puede obtener la sección en la parte superior de la pantalla, así:
NSUInteger sectionNumber = [[tableView indexPathForCell:[[tableView visibleCells] objectAtIndex:0]] section];
embargo, este método puede no ser óptima para usted porque va a obtener el número será raro cuando está en el período de transición entre dos encabezados. Siempre y cuando no necesites conocer la sección durante la transición, estarás bien. Espero que esto es lo que está buscando,
Haga que su clase implemente el UIScrollViewDelegate e implemente las siguientes funciones. Asegurará que recupere la sección solo cuando la vista de tabla deje de desplazarse.
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (!decelerate)
{
// retrieve section here
section = [[[self.tableview visibleCells] objectAtIndex:0] section];
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
// retrieve section here
section = [[[self.tableview visibleCells] objectAtIndex:0] section];
}
Supongo que al hacerlo de esta manera, evita que las secciones se confundan cuando están en transición. – Bot
Esto arroja errores con mi celda personalizada por algún motivo ... '- [Sección Cita Cita Personalizada]: selector no reconocido enviado a la instancia 0x89af850'. Todo lo que hago es NSLogging la sección en el código anterior que proporcionó. – Bot
Esto es antiguo pero está todo mal porque 'self.tableView visibleCells' da' UITableViewCells' y no 'IndexPaths'. Después de obtener indexPaths, podemos hacer indexPaths [0] .section. – esh
creo que en lugar de consultar a los visibleCells, es mejor preguntar por las sendas del índice de la siguiente manera:
NSInteger section = [[[self.tableView indexPathsForVisibleRows] firstObject] section];
Puede utilizar este código en uno de los métodos UIScrollViewDelegate
de acuerdo a su necesariamente.
versión Swift
Uso primera (cubrió actual) o última (se muestra la última)
if let section:Int = tableView.indexPathsForVisibleRows?.last?.section {
tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: section), atScrollPosition: UITableViewScrollPosition.None, animated: true)
}
- 1. UITableView border de sección
- 2. Sección dentro de una sección - UITableView -
- 3. UITableView Sección Antecedentes?
- 4. Cabecera de la sección UITableView iOS 5
- 5. UITableView agregue botones en la sección
- 6. Agregar filas a la sección UITableView existente
- 7. Sección UITableView Encabezado de sección personalizada, problema duplicado
- 8. XNA - Obtenga la resolución de pantalla actual
- 9. UITableView, ¿cómo sé qué Sección durante cellForRowAtIndexPath?
- 10. UITableView sección índice se superpone a la barra de búsqueda
- 11. El encabezado de la sección UITableView es todo negro
- 12. Obtenga información actual de JNLP
- 13. Obtenga la celda actual en Excel VB
- 14. Cambiando el color de los encabezados de sección de UITableView
- 15. Java - Obtenga la salida de sonido de la computadora actual
- 16. Látex, NINGÚN número de sección en TOC pero visible en el encabezado de la sección actual
- 17. Cómo centrar los encabezados de sección de una UITableView
- 18. UITableView w/encabezados de sección translúcidos y diferentes fondos de color sección
- 19. UITableView Sección Pie de página se superpone al desplazarse
- 20. iPhone UITableView con UISearchBar y el refrescante índice de sección
- 21. Altura predeterminada para el encabezado de sección en UITableView
- 22. Cambiando el color del encabezado de sección en UITableview
- 23. Cómo agregar un encabezado de sección en UITableView
- 24. Servicio de Windows: obtenga el directorio actual
- 25. Obtenga la URL actual de WebView de Cocoa
- 26. Windows Batch Script Obtenga el nombre actual de la unidad
- 27. Obtenga el código postal de la ubicación actual - iPhone SDK
- 28. Actionscript - Obtenga el nombre de la función actual
- 29. Obtenga ApplicationId actual en ASP.NET MembershipProvider
- 30. Cambiar cabecera/pie de página de la sección UITableView ¿MIENTRAS SE EJECUTA la aplicación?
¿Qué método debería poner esto en mantener la corriente sectionNumber? – Bot
Scrollviewdidscroll si desea que se actualice cada vez que el usuario se desplaza –
Brilliant, gracias! – devios1