Я добавил функциональность UIRefreshControl в свой проект, который использует UITableView. Приложение работает путем получения записей из веб-службы в табличное представление. Ниже приведен код, который я использовал для добавления UIRefreshControl:
- (void)viewDidLoad
{
[super viewDidLoad];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.tintColor = [UIColor grayColor];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Updating New Entries"];
[refreshControl addTarget:self action:@selector(pullToRefresh) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
[self pullToRefresh];
}
- (void) pullToRefresh
{
counter = 1;
[self fetchEntriesNew:counter]; // My code for updating table view
[self performSelector:@selector(updateTable) withObject:nil afterDelay:2];
}
- (void)updateTable
{
[self.tableView reloadData];
[self.refreshControl endRefreshing];
}
Теперь, если я потяну, чтобы обновить, он обновится, добавив новые записи, если они есть, и покажет мне следующее представление поверх табличного представления:
Все работает отлично, за исключением случаев, когда приложение запускается или открывается в первый раз, оно не отображает представление, которое я показал на изображении выше, хотя оно обновляет представление таблицы. Я хочу, чтобы он отображал элемент управления обновлением каждый раз, когда он обновляет его. Может ли кто-нибудь указать, что я делаю не так? Спасибо!
ОБНОВЛЕНИЕ: я добавил [self refreshControl beginRefreshing], и теперь представление счетчика UIRefreshControl отображается, но оно находится над первой записью представления таблицы. Может кто подскажет, как исправить?