2017-02-23 1 views
0

J'ai une application presque complète. Je veux utiliser la mise en page automatique, mais même si j'ai beaucoup cherché sur ce sujet, je ne pouvais pas trouver une réponse que je pourrais utiliser. Je peux l'obtenir pour montrer correctement sur une taille d'écran mais pas sur un autre ... Voici ma questionComment placer une étiquette et un bouton sur une image de sorte que même si l'image est mise à l'échelle, ils sont au même endroit sur l'image?

Comment est-ce que je mets les contraintes nécessaires de sorte que même si le compteur est mis à l'échelle pour les différents dispositifs classés, l'étiquette et les boutons sont au même endroit sur l'image? (l'image est une image png)

Je serais vraiment heureux si vous pouvez répondre ou me diriger vers une réponse qui montre comment faire une chose similaire.

C'est ce que je veux Demo Image

Et c'est ce qui se passe si j'essayer de le faire avec la mise en page automatique et une taille d'écran différente.

Demo Image 2

  • Ce n'est pas la même image que je me sers dans mon application, mais il vous donnera une idée)

Merci encore

Edit:.

Merci pour les réponses, mais comme indiqué dans les commentaires, la première réponse ne fournit pas un moyen de mettre à l'échelle l'image pour différentes tailles d'écran.

Deuxième réponse fournit un moyen, mais je ne pouvais pas comprendre la 2ème partie de la réponse.J'ai besoin d'un peu plus de détails. Je serais heureux s'il y a quelqu'un là-bas qui peut m'aider sur cette question.

Je suis toujours aux prises avec ce problème. Si je suis la deuxième réponse Xcode dit que j'ai besoin de la position X, la largeur pour la première vue de remplissage et la position Y, la hauteur pour la deuxième vue de remplissage. Je suis bloqué à ce stade. Je ne suis pas sûr de la valeur à donner à ces points de vue.

+0

Etes-vous sûr d'utiliser les images correctement mises à l'échelle dans les éléments d'image (1x, 2x et 3x). J'ai essayé de placer les images de taille correcte dans les actifs d'image et les travaux de mise en page automatique. –

+0

J'ai 1x 2x et 3x. J'ai utilisé une application mac appelée Prepo pour les créer. Mais je ne suis pas très bon en mise en page automatique. Pouvez-vous me dire les contraintes que vous avez utilisées? Est-ce que je manque quelque chose? Merci – TheTeacher33

+0

J'ai ajouté un exemple de projet comme réponse –

Répondre

0

Parce que la taille de l'image change sur différentes tailles d'écran, vous ne pouvez pas définir des contraintes constantes. Ce dont vous avez besoin, ce sont des contraintes proportionnelles.

  1. Définissez votre UILabel et UIButton pour avoir la largeur et la hauteur proportionnelle à la largeur respectivement UIImageView et hauteur.

Pour cela: Cliquez sur votre UILabel

enter image description here

et Ctrl glisser sur la UIImageView, la sélection et l'égalité Largeurs Equal Heights.Supposons que votre UILabel ait une largeur de 100px et que votre UIImageView ait une largeur de 500px. Modifier les contraintes que vous venez de définir et mettre le multiplicateur à 100: 500 enter image description here

Cela fera en sorte que toute modification de la largeur UIImageView, aura une incidence sur la largeur UILabel en conséquence. Faites de même pour la contrainte de hauteur. Répétez les mêmes étapes pour UIButton

  1. Le haut/bas/de fuite/leader contrainte ne peut pas être définie proportionnelle à la taille UIImageView malheureusement, mais vous pouvez avoir vues de remplissage - vues transparentes qui peuvent mimer les contraintes de mise en page.

Vous aurez besoin de deux vues de remplissage: une pour contrainte supérieure: enter image description here

(définir sa hauteur proportionnelle à la hauteur de UIImageView)

et une pour principale contrainte

(

enter image description here

(définir sa largeur pour être proportionnelle à l'interface utilisateur ImageView width)

Je peux faire une petite vidéo pour vous si ce n'est pas assez clair.

+0

Merci pour la réponse. Je pense que j'ai pu suivre la première partie mais je n'ai pas compris la 2ème partie. Sommes-nous épingler les points de vue à n'importe où? C'est la chose la plus compliquée que je fais dans la mise en page automatique. Mais je pense que j'ai besoin de l'apprendre. Je serais vraiment reconnaissant pour une vidéo. – TheTeacher33

1

Vous devez ajouter des contraintes par rapport à la vue de l'image. J'ai créé un petit projet avec votre image. Cela devrait vous aider à démarrer.

https://1drv.ms/u/s!Aq8sK_MQLIL9gxMl-lBOMHkToudU

+0

Gardez à l'esprit que dans ce cas, la vue de l'image sera avoir la même largeur et hauteur pour chaque appareil. Il ne sera pas à l'échelle pour les appareils de différentes tailles – Vlad

+0

J'ai joué avec cela mais comme @Vlad a fait remarquer qu'il ne s'adapte pas à des tailles d'écran différentes. Un moyen d'y parvenir? – TheTeacher33