Suche…


Einführung

Ein UIRefreshControl-Objekt stellt ein Standardsteuerelement bereit, mit dem die Aktualisierung des Inhalts einer Tabellenansicht initiiert werden kann. Sie verknüpfen ein Aktualisierungssteuerelement mit einer Tabelle über ein zugeordnetes Tabellensicht-Controller-Objekt. Der Table View-Controller übernimmt die Aufgabe, das Steuerelement dem visuellen Erscheinungsbild der Tabelle hinzuzufügen und die Anzeige dieses Steuerelements als Reaktion auf entsprechende Benutzergesten zu verwalten.

Ziel-C-Beispiel

Deklarieren Sie zunächst eine solche Eigenschaft im ViewController

@property (nonatomic) UIRefreshControl *refreshControl;

Später in viewDidLoad() richten Sie das refreshControl wie folgt ein:

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;

Nun ist die Funktion refreshTable definiert als:

- (void)refreshTable {
    //TODO: refresh your data
    [self.refreshControl endRefreshing];
    [self.refreshControl beginRefreshing];
    [self.tableView reloadData];
    [self.refreshControl endRefreshing];
}

Die resultierende Aktualisierungsansicht ist:

RefreshControl für tableView einrichten:

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow