UIRefreshControl iOS 6 xcode
有没有人有一个如何实现新的UIRefreshControl
到Xcode的简短的例子。 我有一个显示推文的UITableViewController
,希望能够下拉和刷新。
你可以在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];
,调用[self.refreshControl endRefreshing];
停止更新控制,正如rjgonzo所指出的那样。
您也可以在Interface Builder中进行configuration。 尽pipe它目前的工作方式,它只会节省你几行代码。
selectTableViewController场景,并在属性检查器中find“刷新”的下拉列表选项。 将其设置为“已启用”。 你会注意到在视图控制器层次结构中添加了一个“刷新控制”(你不会看到任何视觉上添加到场景本身)。 奇怪的是,将Refresh Control连接到IBAction(值更改事件)后,事件似乎不会被触发。 我猜这是一个错误(?),但同时,设置“刷新”启用创buildUIRefreshControl对象,并将其分配给视图控制器的refreshControl属性。 完成后,您可以将事件处理行添加到您的viewDidLoad方法中:
[self.refreshControl addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
在你的refreshView:方法中,你可以做一些工作,然后停止刷新animation:
- (void)refreshView:(UIRefreshControl *)sender { // Do something... [sender endRefreshing]; }
在这里你怎么做拉下来,刷新
在你的UITableViewController.h中添加UIRefreshControl *refreshControl;
和-(void) refreshMyTableView;
方法全局声明
并在UITableViewController.m的 viewDidLoad
//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;
并刷新刷新date和时间的function
-(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]; }