iOS
UIRefreshControl TableView
Ricerca…
introduzione
Un oggetto UIRefreshControl fornisce un controllo standard che può essere utilizzato per avviare l'aggiornamento dei contenuti di una vista tabella. Si collega un controllo di aggiornamento a una tabella tramite un oggetto controller della vista tabella associato. Il controller di visualizzazione tabella gestisce il lavoro di aggiunta del controllo all'aspetto visivo della tabella e gestisce la visualizzazione di tale controllo in risposta a gesti appropriati dell'utente.
Esempio-C Esempio
Prima dichiarare una proprietà come questa nel ViewController
@property (nonatomic) UIRefreshControl *refreshControl;
Più tardi in viewDidLoad()
configura refreshControl come indicato di seguito:
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 Animation
self.refreshControl.tintColor = [UIColor redColor];
//Setting the attributed String to the text
NSMutableAttributedString * 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;
Ora la funzione refreshTable
è definita come:
- (void)refreshTable {
//TODO: refresh your data
[self.refreshControl endRefreshing];
[self.refreshControl beginRefreshing];
[self.tableView reloadData];
[self.refreshControl endRefreshing];
}
Configura refreshControl su 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 thread
dispatch_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];
});
});
}
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow