recherche

Maison  >  Questions et réponses  >  le corps du texte

objective-c - UITableViewDataSource中的cellForRowAtIndexPath如何实现?

在controller中delegate了UITableViewDataSource以后,是必须实现这个方法以展示UITableView的。它的方法原型如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

能否结合例子具体解释下NSIndexPath的含义,另外与它想对应的还有一个必须实现的方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

这个section表示的又是什么呢?

高洛峰高洛峰2854 Il y a quelques jours632

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-21 11:00:06

    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.

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

    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.

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    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

    switch (seciton) {
        0 :
            return 6;
        1 :
            return 3;
    }
    return 0;

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-21 11:00:06

    1. NSIndexPath comprend principalement (NSUInteger)section et (NSUInteger)row Chaque row doit appartenir à un section, sinon ce row n'a aucun sens - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section indique chaque section Combien de <🎜. > y en a-t-il ? row 2. Ouvrez
    , les titres A, B, C... à l'intérieur appartiennent à Contacts, et section header constitue un header + rows + footer complet. Vous pouvez personnaliser l'en-tête et le pied de page via section Semblable à <🎜. >

    répondre
    0
  • Annulerrépondre