2017-02-25 1 views
2

Je souhaite ajouter un ActivityIndicator au bas de mon UITableView lorsque la dernière cellule est affichée, pendant que j'obtiens plus de données, puis lorsque les données sont récupérées, masquez-le.Ajouter un ActivityIndicator en bas de UITableView lors du chargement

Donc, je défile vers le bas -> dernière ligne affichée -> spinner commence à tourner pendant que les données sont récupérées -> Données récupérées, cacher le spinner -> nouvelles données ajoutées à la tableview.

Des conseils sur comment puis-je y parvenir?

Merci;)

Répondre

16

Ajouter Cette fonction

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { 
    let lastSectionIndex = tableView.numberOfSections - 1 
    let lastRowIndex = tableView.numberOfRows(inSection: lastSectionIndex) - 1 
    if indexPath.section == lastSectionIndex && indexPath.row == lastRowIndex { 
     // print("this is the last cell") 
     let spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray) 
     spinner.startAnimating() 
     spinner.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: tableView.bounds.width, height: CGFloat(44)) 

     self.tableview.tableFooterView = spinner 
     self.tableview.tableFooterView?.isHidden = false 
    } 
} 

et tableFooterView doit se cacher lorsque la charge de données.

+1

N'utilisez jamais de valeurs de taille de repère en raison de tailles d'écran différentes – lukwuerz

+0

Qu'est-ce que tableView_category? – lukwuerz

+0

la tableview_category est votre tableView par défaut qui contient les lignes. Je l'ai eu et cet exemple a fonctionné comme un charme –

2

Une façon serait d'ajouter une cellule personnalisée avec une UIActivityIndicatorView en elle. Vous pourriez le mettre dans une section séparée. Il y a plusieurs façons de le faire.

Ou vous vérifier cela: https://github.com/evnaz/ENFooterActivityIndicatorView

+0

Je vais y jeter un oeil –

+1

Je ne voudrais pas utiliser une bibliothèque tierce pour cela, et l'exemple donné est écrit dans Obj-C –

+1

Vous n'avez pas à l'utiliser. Vous pouvez juste le vérifier pour savoir comment cela fonctionne et l'écrire rapidement si vous en avez besoin. – lukwuerz