L'impostazione di un tipo di accessorio UITableViewCell su alcune cellule, ma non tutti
-
23-09-2019 - |
Domanda
Ho 8 celle che vengono costruite nella mia UITableViewController. Vorrei sapere come posso mostrare un indicatore di divulgazione sul 4 ° e 8 ° cellule. In questo momento sto costruendo in
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
se io sono pienamente consapevole che sta per aggiungere un indicatore di divulgazione a ogni cellula
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
Soluzione
Con un semplice if:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
... // do whatever
UITableViewCellAccessoryType accessoryType = UITableViewCellAccessoryNone;
if (indexPath.row == 3 || indexPath.row == 7) {
accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.accessoryType = accessoryType;
... // do whatever
}
Altri suggerimenti
Si conosce l'indexPath, quindi perché non solo condizionatamente applicare l'indicatore di divulgazione quando
if((indexPath.row == 3) || (indexPath.row == 7))
(indexPath.row è 0 a base, naturalmente ... il 4 ° è 3 e l'8 è 7. E si dovrebbe usare #defines o qualche altro modo per mantenere i numeri magici fuori anche lì.)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow