UIRefreshControl Selector не вызывает цель c - PullRequest
0 голосов
/ 03 мая 2018

UIRefreshControl не вызывает свой селектор. Вот иерархия UITableView:

UINavigationController-UITabBarController-UIViewController-UITableView

Ниже приведен код.

refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[contestTableView setContentOffset:CGPointMake(0, -self.refreshControl.frame.size.height) animated:YES];
[contestTableView addSubview:refreshControl];
[refreshControl layoutIfNeeded];
[refreshControl beginRefreshing];


-(void)handleRefresh:(id)sender
{
    NSLog (@"Pull To Refresh Method Called");
    [self getDataFromServer];
    [self.refreshControl endRefreshing];
}

элемент управления обновлением не вызывает функцию handleRefresh при раскрытии UITableview. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Попробуйте прокомментировать строку ниже вашего кода. Поскольку вы уже запустили beginRefreshing операцию обновления в viewDidLoad и не возвращаете элемент управления в его состояние по умолчанию с помощью endRefreshing () , селектор handleRefresh: не будет уволена.

[refreshControl beginRefreshing];

beginRefreshing () : Сообщает элементу управления, что операция обновления была запущена программно. И вызывается только тогда, когда внешний источник событий запускает программное обновление вашего представления с прокруткой, например, вы периодически обновляете представление таблицы, используя таймер.

0 голосов
/ 03 мая 2018

Сначала необходимо добавить элемент управления обновлением, попробуйте пример кода

swift:
     if #available(iOS 10.0, *) {
            tableView.refreshControl = refreshControl
        } else {
            tableView.addSubview(refreshControl)
        }


obj-c :

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(refresh1:) forControlEvents:UIControlEventValueChanged];
    [yourTableview addSubview:refreshControl];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...