Detectando el "rebote" inferior de UITableView
Tengo una vista de tabla que realiza una animación cuando el usuario se desplaza hacia abajo en un UITableView (presiona el pulgar hacia arriba) y una animación diferente cuando el usuario se desplaza hacia arriba (presiona el pulgar hacia abajo) en un UITableView.
El problema es que cuando el usuario llega a la parte inferior de un UITableView y rebota, la tabla registra un movimiento ascendente y luego descendente, y realiza la animación cuando no debería hacerlo.
Este mismo comportamiento exacto ocurre cuando se desplaza hacia la parte superior; Sin embargo, soy capaz de detectarlo así:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
self.lastContentOffset = scrollView.contentOffset;
}
-(void) scrollViewDidScroll:(UIScrollView *)scrollView {
// Check if we are at the top of the table
// This will stop animation when tableview bounces
if(self.tableView.contentOffset.y < 0){
// Dont animate, top of tableview bounce
} else {
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y) {
// Downward animation
[self animate:@"Down"];
} else {
// Upward
[self animate:@"Up"];
}
self.lastContentOffset = currentOffset;
}
}
Esto funciona perfectamente, pero por mi vida no puedo encontrar una condición para detectar el fondo también. Estoy seguro de que es simple y no puedo entenderlo.