UIRefreshControl TableView
Objective-C Example
Section titled “Objective-C Example”First declare a property like this in the ViewController
@property (nonatomic) UIRefreshControl *refreshControl;Later in the viewDidLoad() set up the refreshControl as given below:
self.refreshControl = [[UIRefreshControl alloc]init];[self.tableView addSubview:self.refreshControl];[self.refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];//Setting the tint Color of the Activity Animationself.refreshControl.tintColor = [UIColor redColor];//Setting the attributed String to the textNSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];self.refreshControl.attributedTitle = string;Now The function refreshTable is defined as:
- (void)refreshTable { //TODO: refresh your data [self.refreshControl endRefreshing]; [self.refreshControl beginRefreshing]; [self.tableView reloadData]; [self.refreshControl endRefreshing];}Set up refreshControl on tableView:
Section titled “Set up refreshControl on tableView:”UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];[refreshControl addTarget:self action:@selector(pullToRefresh:) forControlEvents:UIControlEventValueChanged];self.scrollView.alwaysBounceVertical = YES;[self.scrollView addSubview:refreshControl];
- (void)pullToRefresh:(UIRefreshControl*) sender{//Do work off the main threaddispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Simulate network traffic (sleep for 2 seconds) [NSThread sleepForTimeInterval:2]; //Update data //Call complete on the main thread dispatch_sync(dispatch_get_main_queue(), ^{ //Update network activity UI NSLog(@"COMPLETE"); [sender endRefreshing]; });});}
