Tirez pour mettre à jour iOS 7

J'essaie de forcer la fonction pull To refresh Travail approprié sur iOS 7 Dans ma présentation tabulaire. Sur viewDidLoad J'ai:


self.refreshControl = [[UIRefreshControl alloc] init];

[self.refreshControl addTarget:self action:@selector/refreshInvoked:forState:/ forControlEvents:UIControlEventValueChanged];


Alors je cours:


-/void/ refreshInvoked:/id/sender forState:/UIControlState/state {
// Refresh table here...
[_allEntries removeAllObjects];
[self.tableView reloadData];
[self refresh];
}


Quand une demande qui provoque une méthode refresh, effectué en code didCompleteRequest J'ai:


[self.refreshControl endRefreshing];


Sur iOS 6 Cela voudra dire que lorsque vous tirez sur la table, il montrera une flèche ronde qui s'étendra lorsque vous osez, et après votre retrait suffisamment, il sera mis à jour. Cependant, maintenant je ne vois pas la flèche ronde, seulement UIActivityIndicator. Cela fonctionnera aussi parfois et parfois pas. Qu'est-ce que je rate?
Invité:

Denis

Confirmation de:

Ajouter UIRefreshControl dans votre UITableView.

..

1/ dans ViewDidLoad.

.


- /void/viewDidLoad
{
[super viewDidLoad];

//to add the UIRefreshControl to UIView
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Please Wait..."]; //to give the attributedTitle
[refreshControl addTarget:self action:@selector/refresh:/ forControlEvents:UIControlEventValueChanged];
[tblVideoView addSubview:refreshControl];
}


2/ Appelez la méthode associée pour mettre à jour les données UITableView.

..


- /void/refresh:/UIRefreshControl */refreshControl
{
[self refreshTableData]; //call function you want
[refreshControl endRefreshing];
}


OR pour Swift


let refreshControl : UIRefreshControl = UIRefreshControl.init//
refreshControl.attributedTitle = NSAttributedString.init/string: "Please Wait..."/
refreshControl.addTarget/self, action: #selector/refresh/, forControlEvents: UIControlEvents.ValueChanged/
feedTable.addSubview/refreshControl/

func refresh/refreshControl:UIRefreshControl/{
self.refreshTableData////call function you want
refreshControl.endRefreshing//
}

Emmanuel

Confirmation de:

'UIActivityIndicator', à propos de ce que vous dites - Ceci est une nouvelle apparence par défaut. UIRefreshControl.

Vous descendez et lorsque le cercle est terminé, il montre à quel point vous êtes proche du démarrage du démarrage.

Ernest

Confirmation de:

Vous pouvez supprimer/Cachez l'indicateur d'activité par défaut et ajoutez vos propres images et animations.

Il existe également une valeur de seuil spécifique. /distance/, Quelle table doit passer avant d'appeler la mise à jour.

Voici notre tutoriel pour les contrôles utilisateur Pull To Refresh /dans objective-c et swift/:
http://www.jackrabbitmobile.co ... trol/
/

J'espère que cela aidera, laissez-moi savoir si je peux répondre à quoi que ce soit d'autre

Hannah12

Confirmation de:

Mettre à jour swift

Pour TableView


- /void/viewDidLoad
{
let refreshControl = UIRefreshControl//
refreshControl.attributedTitle = NSAttributedString/string: "Please Wait.."/
tableView.addSubview/refreshControl/
refreshControl.addTarget/self, action: #selector/refreshTable/, forControlEvents: UIControlEventValueChanged/
}

- /void/refreshTable {
//Refresh Data here
//......
//Once all the data is fetched. If you are loading asynchronously add the below code inside the async block
refreshControl.endRefreshing//
[tableView reloadData];
}


Pour UITableViewController

DANS UITableViewController Il y a une propriété par défaut appelée refreshControl, Qui est le zéro par défaut. Si vous voulez, ininitialisez simplement refreshControl Et assignez-le.


let refreshControl = UIRefreshControl//
refreshControl.attributedTitle = NSAttributedString/string: "Please Wait.."/
yourTableViewController.refreshControl = refreshControl

Pour répondre aux questions, connectez-vous ou registre