Problémes avec les layouts

Bonjour,


 


Les contraintes relève toujours de la magie pour moi.


 


J'essaie de faire quelque chose mais sans y arriver, je ne comprend pas pourquoi.


 


Donc sur une vue, j'ai trois bouton aligner horizontalement, je voudrai qu'il garde le même espace entre celui du milieu et ceux des extrémité.


 


Je pense avoir mis les bonnes contraintes mais cela ne marche pas.


A chaque fois le bouton du milieu est poussé vers celui de gauche ou celui de droite.


 


I need help !!!!  


 


Illustation en pièce jointe


 


 


Réponses

  • CéroceCéroce Membre, Modérateur
    mai 2016 modifié #2


    A chaque fois le bouton du milieu est poussé vers celui de gauche ou celui de droite.




     


     


    Et en faisant cela, Autolayout satisfait tout à  fait ta contrainte qui dit que l'espacement doit être inférieur ou égal à  une valeur. 


     


    Le plus simple pour résoudre ton problème est de dire que le carré central est aligné au centre de la vue.


    On peut aussi déclarer que le premier espacement est égal au deuxième.


  • WouaaaaaaaHou 


     


    Magic happend !!!!


     


    Merci Céroce, je n'avais pas pensé a l'aligné au centre !!!


     


    Etant en école d'informatique, j'aimerais tellement avoir des référents comme vous !!!! j'apprendrais tellement plus !!!!


     


    Merci encore.


  • CéroceCéroce Membre, Modérateur

    Pas de quoi. Je dois dire que ça n'a pas été évident pour moi au début. C'est quand j'ai commencé à  déclarer les contraintes par le code que j'ai vraiment compris. Non pas que je conseille de le faire, mais par le code, on comprend que chaque contrainte est une équation linéaire et qu'Autolayout trouve une solution qui satisfait toutes les contraintes. Pas forcément celle qu'on attend en tant qu'humain! Il faut donc parfois ajouter des contraintes pour lever les ambiguà¯tés.


     


    Regarde aussi les vidéos de WWDC (ou lis leur retranscriptions sur http://asciiwwdc.com).


  • Un grand merci !!!!


Connectez-vous ou Inscrivez-vous pour répondre.