Wykrywanie dolnego „odbicia” UITableView
Mam widok tabeli, który wykonuje animację, gdy użytkownik przewija w dół na UITableView (przesuń kciuk w górę) i inną animację, gdy użytkownik przewija w górę (naciśnij kciuk w dół) na UITableView.
Problem polega na tym, że gdy użytkownik dotrze do dna UITableView i odbija się, tabela rejestruje ruch w górę, a następnie w dół, wykonując animację, gdy nie powinna.
To samo dokładnie zachowuje się podczas przewijania do góry; jednak potrafię to wykryć tak:
- (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;
}
}
To działa doskonale, ale przez całe życie nie potrafię określić, czy warunek do wykrywania dna również. Jestem pewien, że to proste i po prostu nie mogę tego zrozumieć.