Autolayout - cell self sizing
Bonjour,
Suite au passage de l'une de mes applications sous iOS8+ (contre iOS7+ avant), j'en profite pour nettoyer mon code de façon à le rendre plus simple et maintenable. Je change donc le dimensionnement manuel de mes cells par un dimensionnement automatique.
Tout ce passe bien (et épargne plusieurs dizaines de lignes de codes), sauf dans le cas ou une image est présente : rien a faire, j'obtient des erreurs de layout dans la console. J'ai tenté plusieurs contraintes tels que sur la hauteur/largeur ou encore ratio, sans succès.
Y'a t'il une méthode pour définir la taille souhaité d'une image dans la cellule via le storyboard avec un tableview en dimension automatique ?
Bonne fêtes et bonne réveillon !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Tu pourrais faire voir à quoi ressemblent tes contraintes dans ta cellule s'il te plait ?
Voici les contraintes appliqué par exemple a un Map View qui prend toute la place de ma cellule (j'ai aussi le soucis sur des images mais le principe est le même je pense).
Avec ces contraintes, le rendu obtenu sur le terminal est celui voulu, mais j'ai toujours des soucis dans la console avec les contraintes non respectés (pour les quatre il me semble !).
Essaye de mettre une hauteur >= à une valeur pour voir
La question, c'est comment veux-tu positionner tes éléments dans ta cellule. Est-ce que par exemple tu veux que ton image prenne tout l'espace en largeur ou souhaites-tu seulement qu'elle ait une taille fixe ? Est-ce que tu veux la centre avec ta cellule ?
Et c'est tout une série de questions comme celles-ci que tu dois te poser et nous partager pour être efficace.
Pour tester les dimensions positivite, je testerai cela demain !
Je pense que c'est dû aux marges appliquées.
J'ai tenté avec des marges égales à 0, meme soucis.
Voici ma configuration avec une map view par exemple :
et les log console :
Enlève ta contrainte de hauteur.
Sauf que dans ce cas, ma cellule sera toute petite. Il faudrait que j'arrive a donner une hauteur de cellule pour cette cellule uniquement...
Logiquement non elle ne sera pas toute petite si tu utilises le estimatedRowHeight :
Là logiquement ça devrait le faire. Si ça ne fonctionne pas, tu mets une contrainte de hauteur >= à ta valeur de hauteur minimale.
c'est déjà le cas malheureusement...
self.displayTableView.estimatedRowHeight = 150.0;
self.displayTableView.rowHeight = UITableViewAutomaticDimension;
Avec contrainte de haute j'ai toujours des soucis dans la console, sans contrainte toujours une cellule trop petit de taille minimum.
C'est un peu vague en fait pour moi. Les logs tels quel m'aident pas réellement. Mais quand je les lis, rien ne les lient à ta map. La hauteur de 20 vient plus s'apparenter à une contrainte ajoutée par le système qu'autre chose. Pourquoi ce warning ? Difficile d'expliquer. Faudrait avoir le storyboard sous les yeux.