Подтвердить что ты не робот

UIRefreshControl iOS 6 xcode

Есть ли у кого-нибудь короткий пример того, как реализовать новый UIRefreshControl в xcode. У меня есть UITableViewController, который отображает Tweets, хочу, чтобы можно было снести и обновить.

4b9b3361

Ответ 1

Вы можете просто установить его в своем viewDidLoad, если у вас есть UITableViewController:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh)
         forControlEvents:UIControlEventValueChanged]; 
self.refreshControl = refreshControl;

Затем вы можете сделать свой материал для обновления здесь:

-(void)refresh {
    // do something here to refresh.
}

Когда вы закончите обновление, вызовите [self.refreshControl endRefreshing];, чтобы остановить управление обновлением, как указано rjgonzo.

Ответ 2

Вы также можете настроить это в Interface Builder. Хотя он работает в данный момент, он сохраняет только пару строк кода.

Выберите сцену TableViewController и в Инспекторе атрибутов, вы найдете раскрывающийся список для параметра "Обновление". Установите значение "Включено". В иерархии диспетчера представлений вы заметите, что был добавлен "элемент управления обновлением" (вы не увидите ничего визуально добавленного в саму сцену). Что странно, что после подключения Refresh Control к IBAction (событие изменения стоимости) событие, похоже, не срабатывает. Я предполагаю, что ошибка (?), Но между тем, установка "Refreshing" для включения создает объект UIRefreshControl и присваивает его свойству refreshControl контроллера представления. При этом вы можете добавить линию обработки событий к методу viewDidLoad:

[self.refreshControl addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];

В вашем методе refreshView: вы можете выполнить некоторую работу, а затем остановить анимацию обновления:

- (void)refreshView:(UIRefreshControl *)sender {
    // Do something...
    [sender endRefreshing];
}

Ответ 3

Здесь вы можете сделать снимок и обновить

В UITableViewController.h добавьте UIRefreshControl *refreshControl; и -(void) refreshMyTableView; глобальная декларация метода

и viewDidLoad UITableViewController.m

//initialise the refresh controller
refreshControl = [[UIRefreshControl alloc] init];
 //set the title for pull request
    refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"pull to Refresh"];
    //call he refresh function
    [refreshControl addTarget:self action:@selector(refreshMyTableView)
             forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;

и обновить функцию с датой и временем обновления

-(void)refreshMyTableView{

    //set the title while refreshing
    refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"Refreshing the TableView"];
    //set the date and time of refreshing 
    NSDateFormatter *formattedDate = [[NSDateFormatter alloc]init];
    [formattedDate setDateFormat:@"MMM d, h:mm a"];
    NSString *lastupdated = [NSString stringWithFormat:@"Last Updated on %@",[formattedDate stringFromDate:[NSDate date]]];
    refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:lastupdated];
    //end the refreshing
    [refreshControl endRefreshing];

}