[self.tableView registerNib:[UINib nibWithNibName:@"NewTaskCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:NewTaskCellId];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NewTaskCell *cell = [self.tableView dequeueReusableCellWithIdentifier:NewTaskCellId forIndexPath:indexPath];
if (!cell) {
cell = [[NewTaskCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NewTaskCellId];
}
if (self.taskList.count > indexPath.row) {
FindDisOrderInfoEntity *entity = [self.taskList objectAtIndex:indexPath.row];
[cell setCellContentWith:entity];
}
return cell;
}
Supprimer if (self.taskList.count > indexPath.row)
Affectation normale de la cellule
Lorsque la cellule augmente, actualisez le tableau ou actualisez la nouvelle ligne
Vous devez d'abord regarder le nombre de cellules dont vous disposez. Deuxièmement, le concept de cellules est celui de conteneurs. Le pouvoir décisionnel réside dans la source de données
.Vous vous êtes déjà inscrit en utilisant la méthode registerNib. Il n'est pas nécessaire de déterminer si la cellule est vide dans la méthode proxy
Écrivez ceci dans la méthode proxy (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath :
Réutilisation des cellules, la réutilisation est l'état précédent, tel que
UIButton
etUILabel
sur la cellule SiUIButton
est l'état en surbrillanceUILabel
surtext=@"label"
avant la réutilisation, puis après la réutilisation,UIButton
. est toujours en surbrillance, leUILabel
detext
est toujourslabel
et la méthodecell
sera appelée lorsquecellForRow
sera réutilisée. Par conséquent, les valeurs et les états sont généralement réaffectés et modifiés danscellForRow
. Il y a donc une règle par défaut dans la cellule, qui est如果有if 那一定要有else
, sinon la cellule deviendra chaotique.Vous n'avez pas à juger si la cellule est vide après l'enregistrement, mais il n'y a rien de mal à cela. Pourquoi votre décompte doit-il être jugé ? Je ne comprends pas. Peut-être que votre tableau n'est pas une source de données ? Mais ce n'est probablement pas votre problème. Si votre "duplication de contenu" signifie que les contrôles sur la cellule sont ajoutés à plusieurs reprises, alors cela devrait être [cell setCellContentWith:entity]; il se peut que vous créez le contrôle ici et que vous l'ajoutiez. La réutilisation actualise uniquement les données, c'est-à-dire que seul le processus d'affectation ne crée pas le contrôle
La tableview n'affiche pas grand chose. Si vous ne la laissez pas être réutilisée, elle ne sera pas répétée. De plus, après avoir appelé la méthode registerNib, la mémoire sera toujours pure CELL
.