Definir um tipo de acessório uableViewCell em algumas células, mas não todas
-
23-09-2019 - |
Pergunta
Eu tenho 8 células que estão sendo construídas no meu uitableViewController. Gostaria de saber como posso mostrar um indicador de divulgação nas 4ª e 8ª células. Agora estou construindo isso em
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Embora eu esteja plenamente ciente de que vai adicionar um indicador de divulgação a cada célula
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
Solução
Use uma instrução IF simples:
- (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
}
Outras dicas
Você conhece o IndexPath, então por que não apenas aplicar condicionalmente o indicador de divulgação quando
if((indexPath.row == 3) || (indexPath.row == 7))
?
(IndexPath.Row é baseado em 0, é claro ... o 4º é 3 e o 8º é 7. E você deve usar #Defines ou outra maneira de manter os números mágicos também.)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow