Detectando o "salto" inferior do UITableView
Eu tenho uma exibição de tabela que executa uma animação quando o usuário rola para baixo em um UITableView (push polegar para cima) e uma animação diferente quando o usuário rola para cima (Push polegar para baixo) em um UITableView.
O problema é quando o usuário atinge o fundo de um UITableView e ele salta, a tabela registra um movimento para cima e depois para baixo, executando assim a animação quando não deveria.
Esse mesmo comportamento exato acontece ao rolar para o topo; no entanto, eu sou capaz de detectá-lo assim:
- (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;
}
}
Isso funciona perfeitamente, mas para a vida de mim eu não consigo descobrir uma condição para detectar o fundo também. Eu tenho certeza que é simples e eu simplesmente não consigo descobrir.