在controller中delegate了UITableViewDataSource
以后,是必须实现这个方法以展示UITableView的。它的方法原型如下
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
能否结合例子具体解释下NSIndexPath
的含义,另外与它想对应的还有一个必须实现的方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
这个section表示的又是什么呢?
Expliquez d'abord la disposition de TableView. Le contenu d'un TableView est à deux niveaux, Section et Row in Section. La vue correspondant à chaque Row devient TableViewCell. Prenons settings.app comme exemple, comme indiqué ci-dessous :
Il y a deux sections
sur la photo Il y a 6 lignes dans la section 0 -- Mode avion ~ Opérateur
Vous pouvez voir 3 lignes dans la section 1 -- Son ~ Bureau
Parlons des deux méthodes dans la question.
Cette méthode renvoie une certaine cellule, qui peut être rendue dans différents styles personnalisés ou rendue dans plusieurs styles par défaut.
IndexPath marque l'emplacement de la cellule que vous souhaitez afficher. Il y a deux attributs dans l'objet indexPath, la section et la ligne, comme son nom l'indique, vous pouvez localiser une certaine cellule.
Remarque : Cette méthode sera appelée lorsqu'une cellule apparaît à l'écran, et elle sera appelée une fois si elle n'apparaît pas une fois. Car un objet cellule est recyclé lorsque la zone visible de l’écran disparaît, et est réutilisé pour d’autres cellules qui apparaissent dans la zone visible. Par conséquent, lors du rendu d'une cellule avec cette méthode, il est préférable d'utiliser une boucle for ou quelque chose pour nettoyer la cellule.
Cette méthode est appelée lorsque le TableView est généré (ou lorsque reloadData est appelé sur l'objet tableView) et renvoie le nombre de lignes (cellules) dans une certaine section.
Par exemple, dans l'interface settings.app, cela devrait être
1.
NSIndexPath
comprend principalement(NSUInteger)section
et(NSUInteger)row
Chaquerow
doit appartenir à unsection
, sinon cerow
n'a aucun sens- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
indique chaquesection
Combien de y en a-t-il ?row
2. Ouvrez, les titres A, B, C... à l'intérieur appartiennent à
Contacts
, etsection header
constitue unheader + rows + footer
complet. Vous pouvez personnaliser l'en-tête et le pied de page viasection
Semblable à