web-dev-qa-db-fra.com

iOS 7: cadre de vue mal placé pour "Label - Label" sera différent au moment de l'exécution

Je viens de terminer une application sur iOS 6 et j'ai acheté un compte développeur il y a une semaine, donc je n'ai pas eu beaucoup de temps pour jouer avec le SDK iOS 7. Je viens de télécharger la version Golden Master et d'essayer de mettre à niveau mon application pour qu'elle soit compatible avec iOS 7.

J'ai reçu beaucoup d'avertissements disant

Le cadre de vue mal placé pour "Label - Label" sera différent au moment de l'exécution.

et je ne peux pas exécuter le programme. Le projet contient tableview et son analyse et affiche le flux XML à partir d'un flux RSS.

Comment résoudre ce problème?

64
AJ112

J'ai eu le même problème et j'obtiens ci-dessous le formulaire de réponse Apple:

Vous devez mettre à jour les contraintes pour qu'elles correspondent aux cadres de ces vues.

J'ai fait ce qui suit:

Éditeur -> Résoudre les problèmes de mise en page automatique -> Supprimer toutes les contraintes dans ** voir le contrôleur

puis j'ai réordonné mes objets dans la vue.

PS: Essayez d'abord la solution d'Enrico.

44
null

La réponse acceptée fix le problème, mais ce n'est pas une bonne solution car cela supprimera toutes vos contraintes. Si vous avez passé des heures sur les contraintes, ne le faites pas.

Si vous cliquez sur le triangle à côté de l'avertissement, vous pouvez obtenir l'explication de ce qui est mal placé. Ensuite, vous pouvez simplement déplacer le cadre là où il est censé être. Par exemple:

enter image description here

Dans ce cas, je viens de déplacer la position y de ma vue texte sur 94 et l'avertissement disparaîtra. En effet, l'une de mes contraintes obligera la vue à être ailleurs lorsque l'application est en cours d'exécution, mais la position est différente de celle où elle se trouve actuellement dans le storyboard.


Une autre façon de déplacer le cadre vers la bonne position consiste à cliquer sur l'avertissement à côté du nom du contrôleur de vue dans votre storyboard, puis à cliquer sur le panneau d'avertissement jaune, puis à mettre à jour le cadre.

enter image description here

enter image description here

Ces deux méthodes ne sont pas destructives et ne supprimeront pas vos contraintes. Si quoi que ce soit, cela montrera que vous devrez peut-être effectuer des réajustements mineurs de vos contraintes.

137
Enrico Susatyo

J'ai eu le même problème ce que vous devez faire, mettre à jour les contraintes ou mettre à jour le cadre. Sur le storyboard, vous avez une petite barre d'outils comme indiqué dans l'image ci-dessous. enter image description here

Veuillez voir la signification: -

enter image description here

Vous pouvez soit choisir "Mettre à jour les cadres" ou "Mettre à jour les contraintes" et utiliser "Réinitialiser les contraintes suggérées". Cela résoudra le problème concernant la vue mal placée. Ne faites pas glisser et déposez les vues pour modifier la mise en page. Modifiez plutôt les contraintes applicables. S'il vous plaît, faites-moi savoir si vous n'êtes pas clair.

9
Sandy

Si vous rencontrez des problèmes pour trouver les cadres de mise à jour dans xCode, cela peut être fait comme suit:

enter image description here

6
sivi

Aucune des réponses ne fonctionne dans tous les cas. Depuis la version récente de Xcode, en utilisant un UISearchBar, l'activation du champ de cadrage activé dans IB fait apparaître le champ de recherche à double hauteur (mais n'affiche pas la barre de cadrage en dessous). Que vous ajoutiez ou non une contrainte de hauteur (de n'importe quelle hauteur) au champ de recherche, vous obtiendrez l'avertissement qu'il s'agit d'une vue mal placée qui sera de 88 H à l'exécution mais de 44 H en IB. La mise à jour des trames (une ou toutes les trames) ne le résout pas. On dirait un bug dans IB.

2
clearlight