web-dev-qa-db-fra.com

Le cadre "sera différent au moment de l'exécution" .... N'est-ce pas là tout l'intérêt?

Peut-être que rechercher un projet "sans avertissement" est futile, mais je suis assez nerveux à propos de la disposition adaptative/mise en page automatique que je suis obligé d'essayer de supprimer ces avertissements.

J'ai une vue que je souhaite dimensionner dynamiquement en fonction de la largeur de l'écran du portrait. J'ai mon application définie dans les informations de construction pour Universal, Portrait uniquement (et à l'envers). J'ai contraint l'uiview des manières suivantes:

  1. Alignement du centre de la vue sur le centre de Superview X
  2. Rendu la largeur de la vue proportionnelle à la largeur du Superview
  3. A donné à la vue une contrainte de rapport d'aspect de 1: 1
  4. Étant donné la vue, une contrainte verticale au sommet de la vue d'ensemble

Pour plus de détails, veuillez voir la capture d'écran ci-dessous.

Alors maintenant, je reçois les avertissements concernant le "cadre différent de la vue au moment de l'exécution", en particulier la taille et la position au moment de l'exécution par rapport à ce qui est dans le canevas. Je ne sais pas pourquoi Xcode "se soucie" du canevas où les tailles de classe sont définies sur N'importe quelle hauteur et N'importe quelle largeur. Je pensais que l'intérêt de la mise en page adaptative est que les tailles et les positions sont résolues au moment de l'exécution en fonction de la taille et de l'orientation de l'écran des appareils.

Si je tombe en panne et laisse Xcode "Mettre à jour les trames" ... oui, l'avertissement disparaît, mais avec les vues super grandes, il est pratiquement impossible de travailler graphiquement dans la petite toile de manière WYSIWIG. Y a-t-il une solution ici pour se débarrasser des avertissements sans créer de vues surdimensionnées qui rendent le travail à l'intérieur du canevas presque impossible?

Canvas screenshot

20
Electro-Bunny

Vous pouvez changer la taille des mesures simulées par exemple pour un iPhone 4 pouces!

enter image description here

Ou Freeform, puis modifiez la taille à ce qui vous convient le mieux.

enter image description here

8
Aleš Oskar Kocur

Pour se débarrasser de l'avertissement et laisser les contraintes placer les vues "correctement", sélectionnez simplement la vue qui donne l'avertissement, appuyez sur le petit triangle dans le coin inférieur droit du storyboard: enter image description here

Et puis sélectionnez "Mettre à jour les cadres" pour "Toutes les vues dans le conteneur"

(Je souhaite qu'il y ait un moyen de le faire pour un storyboard entier. Au moins, je ne l'ai pas trouvé)

22
ullstrm

Sélectionnez une vue et appuyez sur

  • Option + Command + =

Cela mettra à jour la taille du cadre. Répétez pour toutes les vues incriminées. Cela ne prend pas longtemps, surtout si vous les trouvez en cliquant sur les messages d'erreur.

Merci à cette réponse pour l'idée.


Notes

Après la mise à jour vers Xcode 8 et le choix d'une vue comme appareil, je recevais cette erreur. Le menu est différent de celui de Xcode 7, donc la réponse de @ Spoek ne fonctionnait plus. De plus, cliquer sur Mettre à jour ou Réinitialiser ne fonctionnait pas pour moi.

enter image description here

Mise à jour

Mettre à jour les cadres a maintenant son propre bouton. C'est pourquoi je l'ai manqué avant.

enter image description here

20
Suragch