adapter les coordonnes d'un simple UIButton a tous les iphones(swift)

pitou3375

Membre confirmé
15 Juillet 2016
23
0
26
Bonjour à toutes et à tous!
je débute depuis qlq jours le développement swift , et en essayant de développer une application je me retrouve bloqué sur une très bête subtilité..
j'essaie de mettre un bouton dans mon storyboard mais celui ci n'a pas le même emplacement sur un iphone 6s plus et un 4s.... donc il est à la bonne place sur mon 6s plus mais ceux qui ont un 4s , il sera pas du tout au bon endroit... peut-on m'éclairer? :)
merci d'avance !!
 
Salut pitou3375, le problème viens surement du fait que tu n'as pas du utiliser les Constraints.
Les Constraints te servent à définir l'emplacement d'un objet (UILabel, UIButton, UIImageView...) qui resteront à l'endroit indiqué et qui s'adaptera en fonction de la taille de l'iPhone.
 
navré mais je ne comprends pas encore comment ca marche..
car justement j'ai mit 4 contraintes à ce boutton, une par rapport au top de l'application, etc
et des que je passe en écran iphone 4s, le boutton n'est plus exactement ou je veux qu'il soit..
comme j'ai un iphone 6s plus je m'occupe de faire tout ce qui est compatible avec celui ci mais je vais pas aller bien loin comme ca.
 
Personnellement, j'utilise l'option "Add missing Constraints" qui les mets automatiquement.
Sinon, ton problème est résolu ?
 
toujours pas malheureusement... en fait je fait une application ayant un bouton qui doit pouvoir être a un endroit aléatoire de la page , et ce de manière très précise. Des que j'utilise les contraints, ou que je grab avec ctrl pour rajouter des contraintes, le bouton n'est jamais à l'endroit précis ou je veux qu'il soit en changeant d'iphone.
Je suis prêt a refaire pour chaque iphone le travail mais est-ce possible?
 
le bouton n'est jamais à l'endroit précis ou je veux qu'il soit en changeant d'iphone

Bonsoir,

Peux-tu donner plus de précisions sur le résultat exact que tu cherches à atteindre, les réglages que tu as effectués, et le résultat que tu obtiens ?

ca facilitera une réponse adaptée,

cordialement,
Nicolas
 
Bonsoir,

Essaye de supprimer toutes les contraintes et de rajouter uniquement les deux contraintes suivantes :
- distance fixe entre le bas du bouton et le bas de la view
- distance fixe entre la gauche du bouton et la gauche de la view

(il manquera sans doute hauteur et largeur du bouton, pas grave à ce stade)

Cordialement,
Nicolas
 
Bonjour,

J'ai testé ce que je t'ai proposé hier ; il me semble que ça fonctionne comme tu le souhaites (cf copie d'écran ci-dessous) ?

Cordialement
Nicolas

testButton.png
 
je veux que mon bouton soit bien placé par rapport a une image. même en faisant cela, du fait que l'image est plus petite avec un iphone 5, le bouton n'est plus en "accord" avec celle ci (dans les images que j'ai publié plus haut, le boutton cache la tache blanche, il est donc bien placé et dans une taille différente d'iphone il ne recouvre plus la tache). Vraiment désolé de vous embêter avec cela. C'est finalement peut être pas possible car cela fait deux semaines que je cherche suis dessus.
 
Ton soucis bien peut-être de l'image en en fait.
Tout n'est pas très clair.
L'image de la tâche blanche est différente entre les différentes tailles d'écran ? Est-ce qu'elle est toujours au même endroit en pixel (en partant du bas par exemple) ?
 
Oui désole je suis nouveau dans ce domaine, j'ai pas été super précis.
je pense en effet que l'image pose problème finalement. Pourtant oui, l'image a la tache blanche contient des restrictions, elle est donc toujours au même endroit pour chacun des iphones.
 
avec cette image vous voyez que le bouton n'est pas bien placé par rapport à l'image:
 

Fichiers joints

  • Capture d’écran 2016-07-25 à 15.06.01.png
    Capture d’écran 2016-07-25 à 15.06.01.png
    356,8 KB · Affichages: 334
Bonjour,

Tu peux définir les contraintes de ton bouton par rapport à l'image, par exemple :
- le bouton est aligné verticalement avec l'image
- le haut du bouton est x points en dessous du bas de l'image

(même principe que ce que je t'avais proposé, mais en partant de l'image plutôt que de la view)

Cordialement,
Nicolas
 
il me propose vertical spacing et horizontal spacing. Le résultat est la dernière image que j'ai upload ici. je m'en arrache les cheveux tellement c'est un simple détail mais important..
 
j'ai remarqué que niveau contraintes, la contrainte horizontale n'avais pas de soucis. c'est niveau vertical que ca pose problème , a cause des tailles différentes des iPhones.
 
J'ai l'impression que ton rond gris n'est pas toujours centré verticalement. C'est là le gros soucis.
Quelle est la logique du niveau vertical ?
 
il ne l'est pas, le rond gris est à une position quelconque. j'aimerais vraiment pouvoir placer le bouton sur n'importe quelle élément d'images.
Quand je met juste une contrainte verticale, on voit bien que le bouton va trop bas pour l'écran d'un iphone 5 :
 

Fichiers joints

  • Capture d’écran 2016-07-25 à 17.01.00.png
    Capture d’écran 2016-07-25 à 17.01.00.png
    360 KB · Affichages: 308
  • Capture d’écran 2016-07-25 à 17.00.40.png
    Capture d’écran 2016-07-25 à 17.00.40.png
    355,2 KB · Affichages: 334
Il faut vraiment que tu définisses "position quelconque". Qu'est-ce qui décide de la position à "cacher" ?
Tu peux modifier la valeur de la contrainte via code au besoin, ou alors plutôt que de faire du wAny hAny, changer sa valeur en fonction dans Interface Builder.