2011-07-28 35 views
9

Tôi đang sử dụng đoạn mã sau để phát hiện nếu tôi đã đạt đến đáy của một UITableViewVấn đề phát hiện nếu UITableView đã cuộn xuống đáy

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) { 
     NSLog(@"bottom!"); 
     NSLog(@"%@", [self getLastMessageID]); 
     [self getMoreStuff:[self getLastMessageID]]; 
    } 

} 

này hoạt động tốt, nhưng vấn đề duy nhất là khi người dùng là kéo tableview xuống (như kéo để làm mới) mã cháy. Làm thế nào tôi có thể xử lý này?

Trả lời

19

thử cách này

if(self.tableview.contentOffset.y<0){ 
       //it means table view is pulled down like refresh 
       return; 
      } 
else if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) { 
     NSLog(@"bottom!"); 
     NSLog(@"%@", [self getLastMessageID]); 
     [self getMoreStuff:[self getLastMessageID]]; 
    } 
+0

Đừng quên thanh tab :( – Dmytro

0

Lưu vị trí cuối cùng của chế độ xem cuộn trong phương thức didScroll của bạn. Nếu bạn phát hiện một cuộn xuống và vị trí cuối cùng đã là đáy của scrollview thì bạn bỏ qua nó.

0

Hãy thử sử dụng một thuật toán khác để phát hiện, bạn đã đạt đến cuối chế độ xem bảng. Ví dụ, nhìn vào cellForRowAtIndexPath: (NSIndexPath *) indexPath đến indexPath của một ô hiện tại và nếu số hàng trong IndexPath bằng với số hàng trong mảng dữ liệu của bạn, thì bạn đã đạt đến đáy.

+0

bạn có thể chỉ cho tôi một ví dụ trong mã? –

Các vấn đề liên quan