Отменить UIRfreshControl при перетаскивании вверх

когда происходит обновление (вращается колесо действия после опускания), я хочу иметь возможность отменить обновление - так же, как приложение Facebook.

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

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

любая лучшая идея о том, как это реализовать?

Заранее спасибо!


person unpluggedk    schedule 02.05.2013    source источник


Ответы (2)


собственно, только что разобрался. надеюсь, это поможет некоторым :)

при запуске обновления установите какой-либо флаг (здесь будет «обновление») и просто проверьте 1. состояние обновления 2. определите, обнулен ли contentOffset.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //NSLog(@"%f",[self.tableView contentOffset].y);
    if(refreshing){
        if([self.tableView contentOffset].y >= 0){
            refreshing = NO;
            [self.refreshControl endRefreshing];

        }
    }
}
person unpluggedk    schedule 02.05.2013

Чтобы добавить к своему решению, вы можете использовать внутренний флаг, чтобы проверить, не замораживается ли оно в настоящее время.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{{
if (self.refreshControl.refreshing){
    [self.refreshControl endRefreshing];
}
}
person user3344717    schedule 05.11.2014