J'essaie de faire un tableau rempli de photos. Voici ce que je veux et mes contraintes:UITableview rempli d'images: trop d'espace entre les images
- 3: rapport d'aspect 2 pour les photos
image cell.width = image dans cell.height avec 3: 2 multiplicateur
- la largeur des images doit prendre toute la largeur de l'écran
image cell.centerX = Superview.centerX
image dans cell.width = Superview.width
Tableau View.Center X = X Superview.Center
Tableau View.width = Superview.width
- espace entre les images doit être 8
Cell.Bottom = image In Cell.Bottom + 8
- autres contraintes:
Table view.top = top layout guide.bottom
Table view.bottom = block.top rouge
C'est ce que je reçois:
J'ai trois images, une visible à l'écran et les deux autres visibles lors du défilement. J'ai également un bloc rouge en bas de l'écran. La tableview est derrière le bloc rouge.
Mon problème est qu'il y a un espace blanc sur chaque image. Je suppose que cela vient de la vue du contenu ou de la hauteur de la cellule qui ne correspond pas à la hauteur de ma photo, mais je n'arrive pas à le faire correctement.
Avec quelques modifications, j'obtiens un espace correct entre les images mais le rapport d'aspect "à l'écran" n'est plus respecté (= la largeur de l'image semble dépasser la largeur de l'écran). C'est ce qui arrive si j'ajoute cell.height = Image dans Cell.height. Et j'ai aussi des contraintes de conflit pour aspect = 3: 2, height = Image dans Cell.height, Image dans Cell.width = width, et height = 400.
Voyez-vous ce qui ne va pas?
Merci,
Alex
Je ne veux pas une hauteur statique, je veux un rapport d'aspect de 3: 2. Je n'ai rien ajouté dans mon code à propos de rowHeight, donc je suppose que c'est "statique". Dans le storyboard, l'attribut de hauteur de ligne pour la vue tabulaire est de 400, à la place je voudrais respecter le ratio d'aspect et prendre toute la largeur de l'écran, peu importe la hauteur. J'ai ajouté votre code dans viewDidLoad et ajouté l'image de contrainte Dans Cell.top = cell.top, l'espace entre les images est correct mais le format n'est pas respecté (la hauteur est très petite) et j'obtiens des contraintes conflictuelles. – Alex9494
Ok! Le problème maintenant dans vos contraintes. Que voulez-vous dire par cell.top = cell.top. En fait, vous avez besoin de cell.top = cell.imageView.top. Comme votre imageView devrait coller à superView sur le bord supérieur – iamirzhan
Si cela ne fonctionne pas. Essayez de supprimer toutes les contraintes dans la cellule et ajoutez uniquement l'AspectRatio des bords imageView (3: 2) et imageView à superView (0 vers le haut, gauche et droite et 8 vers le bas) – iamirzhan