42 votes

UIRefreshControl iOS xcode 6

Quelqu'un aurait-il un petit exemple de la façon de mettre en œuvre le nouveau UIRefreshControl dans xcode. J'ai un UITableViewController qui affiche les Tweets, vous voulez être en mesure de tirer vers le bas et d'actualisation.

68voto

Danqing Points 2126

Vous pouvez simplement le mettre dans votre viewDidLoad, si vous avez un UITableViewController:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh)
         forControlEvents:UIControlEventValueChanged]; 
self.refreshControl = refreshControl;

Ensuite, vous pouvez faire votre actualisation des trucs ici:

-(void)refresh {
    // do something here to refresh.
}

Lorsque vous avez terminé avec l'actualisation, appelez - [self.refreshControl endRefreshing]; pour arrêter l'actualisation de contrôle, comme l'a souligné rjgonzo.

32voto

J Shapiro Points 3172

Vous pouvez également configurer cette Interface Builder. Bien que la façon dont il fonctionne actuellement, il enregistre seulement quelques lignes de code.

Sélectionnez la TableViewController scène et dans les Attributs de l'Inspecteur, vous trouverez une liste déroulante de l'option pour "Rafraîchissant." Jeu de à "Activé". Vous remarquerez que dans la Vue de Contrôleur de la Hiérarchie d'une "Actualisation de Contrôle" a été ajouté (vous ne verrez pas quelque chose de visuellement ajouté à la scène elle-même). Ce qui est bizarre c'est qu'après le branchement de l'Actualisation de Contrôle à une IBAction (Événement de Changement de Valeur) de l'événement ne semble pas se déclencher. Je devine que c'est un bug (?) mais en attendant, le réglage de "Rafraîchissant" pour activé crée la UIRefreshControl objet et l'affecte à la vue du contrôleur de refreshControl de la propriété. Avec ce fait, vous pouvez ajouter la gestion des événements de la ligne de votre méthode viewDidLoad:

[self.refreshControl addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];

Dans votre refreshView: méthode, vous pouvez faire un peu de travail et puis arrêter le rafraîchissement de l'animation:

- (void)refreshView:(UIRefreshControl *)sender {
    // Do something...
    [sender endRefreshing];
}

18voto

iMeMyself Points 1247

Voici comment vous faire tirer vers le Bas et d'Actualisation

Dans votre UITableViewController.h ajouter UIRefreshControl *refreshControl; et -(void) refreshMyTableView; méthode de déclaration mondiale

et dans viewDidLoad de 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;

et la fonction de rafraîchissement avec la date et l'heure de l'actualisation

-(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];

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X