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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta