2014-09-10 2 views
0

Я строю статью, читающую приложение. Список статей находится в UITableViewController. Мне грозит проблема, когда я использую метод scrollViewDidScroll:. Первая ячейка таблицы отображается под номером UINavigationBar.
Но при комментировании этого кода он отображает тонкие средства первой ячейки именно после UINavigationBar.Как реализовать scrollViewDidScroll: метод?

вот мой код:

- (void)scrollViewDidScroll: (UIScrollView*)scroll { 
    // UITableView only moves in one direction, y axis 

    CGFloat currentOffset = scroll.contentOffset.y; 
    CGFloat maximumOffset = scroll.contentSize.height - scroll.frame.size.height; 

    // Change 10.0 to adjust the distance from bottom 
    if (maximumOffset - currentOffset <= -60.0) { 
     x++; 
     [self LoadMore]; 

     [self.tableView addInfiniteScrollingWithActionHandler:^{ 

     }]; 

     [self.tableView reloadData];  
    } 
} 
+0

Проверьте свое максимальное значение. Возможно, ваша логика в методе scrollViewDidScroll уменьшает вашу ось оси tableView – nikhil84

+0

@ walle84 спасибо, я использовал для печати значение maximumOffset, которое он дает 2072, и увеличивается на прокрутку. – Daljeet

+0

хорошо приветствую !!! – nikhil84

ответ

0

Этот ответ не может быть решением вашей проблемы. Это должно указывать на большой поток в вашем коде, который может быть причиной вашей проблемы.

Не следует перезаряжать данные [self LoadMore];[self.tableView reloadData]; непосредственно внутри scrollViewDidScroll: способ. Это вызовет многократный вызов метода при прокрутке.

И я думаю, что вы внедрили бесконечную загрузку неправильно.

Этот код должен быть размещен внутри некоторого способа инициализации (например, viewDidLoad)

[tableView addInfiniteScrollingWithActionHandler:^{ 
    [self LoadMore]; 
    [self.tableView reloadData]; 
    // call [tableView.infiniteScrollingView stopAnimating] when done 
}]; 

Если вы планируете загружать больше предметов, как вы перечисляете, я не думаю, что вам нужно использовать scrollViewDidScroll: вообще. Проще говоря, код выше viewDidLoad:, и все должно работать. Вам нужно будет отслеживать количество загружаемых предметов отдельно. Надеюсь, это поможет. :)

Смежные вопросы