J'ai conçu ma cellule personnalisée dans IB, je l'ai sous-classée et j'ai connecté mes prises à ma classe personnalisée. J'ai trois sous-vues dans le contenu des cellules qui sont: UIView (cdView) et deux étiquettes (titleLabel et emailLabel). En fonction des données disponibles pour chaque ligne, je souhaite parfois avoir UIView et deux étiquettes affichées dans ma cellule et parfois seulement deux étiquettes. Ce que j'essaie de faire, c'est de définir des contraintes de cette façon si je définis la propriété UIView sur caché ou que je la supprime de la vue d'ensemble, les deux étiquettes se déplaceront vers la gauche. J'ai essayé de définir la contrainte de tête UIView sur Superview (contenu de cellule) pour 10px et les contraintes de tête UILabels pour 10 px sur la vue suivante (UIView). Plus tard dans mon code
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(IndexPath *)indexPath {
...
Record *record = [self.records objectAtIndex:indexPath.row];
if ([record.imageURL is equalToString:@""]) {
cell.cdView.hidden = YES;
}
Je cache mon cell.cdView et j'aimerais que les étiquettes se déplacent vers la gauche mais elles restent dans la même position dans Cell. J'ai essayé de supprimer cell.cdView de superview mais cela n'a pas fonctionné non plus. J'ai joint une image pour clarifier ce que je suis.
Je sais comment procéder par programme et je ne cherche pas cette solution. Ce que je veux, c'est définir des contraintes dans IB et je m'attends à ce que mes sous-vues se déplacent dynamiquement si d'autres vues sont supprimées ou masquées. Est-il possible de le faire dans IB avec la mise en page automatique?
.....