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, которые предполагают, что я что-то упускаю