UIRefreshControl: UITableView «застрял» при обновлении

У меня возникла проблема с реализацией UIRefreshControl - в том, что когда вы опускаете вниз, «blob» работает отлично, а спиннер обновления работает нормально, но tableView не прокручивается до спиннера во время обновления. Вместо этого он остается там, где он был, пока обновление не будет завершено, после чего он вернется в верхнюю часть экрана.

Код, который выполняет обновление:

- (void)viewDidLoad {
    self.refreshControl = [[UIRefreshControl alloc] init];
    [self.refreshControl addTarget:self action:@selector(refreshView:)forControlEvents:UIControlEventValueChanged];
}

- (void)refreshView:(UIRefreshControl *)refresh  {
    dispatch_async(dispatch_get_main_queue(), ^{
        (...code to get new data here...)
        [self.refreshControl endRefreshing];
    }
}

Я обнаружил, что без dispatch_async, даже вращающий элемент обновления не работает - и бит, который был снят, кажется просто белым

У кого-нибудь есть подсказки, что я могу делать не так? Кажется, все примеры реализации, которые я нашел, соответствуют тому, что я делаю, и я не нашел ничего в документах API, которые предполагают, что я что-то упускаю

Ответы на вопрос(1)

Ваш ответ на вопрос