Есть ли у кого-нибудь короткий пример того, как реализовать новый UIRefreshControl
в xcode. У меня есть UITableViewController
, который отображает Tweets, хочу, чтобы можно было снести и обновить.
UIRefreshControl iOS 6 xcode
Ответ 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];
}