Voici un avant et un après de l'un de mes écrans après la mise à niveau vers Xcode 8.
Tout ce que j'ai fait a été d'ouvrir mon main.storyboard et à partir de là, j'ai créé et exécuté mon application sur mon téléphone.
Dans mon contrôle de version, je peux voir que Xcode apporte beaucoup de changements à mon main.storyboard juste après que je l'ouvre.
Chaque fois que je supprime ces modifications, je peux voir ce que j'utilise pour voir dans Xcode 7.3.1.
Mais, dès que je rouvre le constructeur d'interface avec mon storyboard, je vois ces changements se remettre en place.
Est-ce que je peux faire quelque chose ici?
102
Debug View Hierarchy
. Les autres objets de la même classe qui se trouvent dans UICollectionViews ne sont pas affectés.Réponses:
J'ai eu un problème similaire avec les images de tableview n'apparaissant pas une fois que j'ai converti le fichier de storyboard pour qu'il soit compatible Xcode8. Cela ressemble à un bogue avec Xcode8, donc jusqu'à ce qu'un correctif de bogue soit publié, voici une solution:
Lorsque vous devez apporter d'autres modifications au fichier de storyboard, suivez à nouveau ces étapes.
la source
XIB ou Storyboard a défini par défaut la version 7.x plus ancienne et Enregistrer et fermer. Solution temporaire, mais fonctionne. Ne pas ouvrir à nouveau une fois que vous avez terminé Enregistrer et fermer. Sinon, à nouveau, vous devez suivre les mêmes étapes depuis le début.
la source
Eh le même problème. J'ai partiellement réussi à le réparer de la manière suivante ( pour Xcode Version 8.1 (8B62) )
Dans le contour du document de Storyboard, j'ai cliqué sur chaque scène qui avait la flèche jaune indiquant certains problèmes de mise en page (numéro 1 sur la capture d'écran)
Après cela, pour chaque scène problématique, je devais cliquer sur la petite icône "Update Frames" (numéro 2 sur la capture d'écran) qui corrigeait tous les problèmes de mise en page par scène.
Cependant, une scène dans mon cas était toujours en état de pleurer après la transition de Xcode7 à Xcode8. J'ai dû le corriger manuellement en ajustant les contraintes ou en ajoutant des contraintes manquantes.
Ouf, pas belle surprise de XCode8 et Storyboards. Si vous avez utilisé l'éditeur AppCode, vous n'aurez pas ce problème, car il ne prend pas en charge les Storyboards; P
Bonne chance!
la source
Xcode 8.1 Beta 2 résout ce problème. Veuillez vérifier ce lien de téléchargement
https://developer.apple.com/download/
la source
Veuillez suivre les fils pour toute solution possible: (je crois que cela arrive à de nombreux développeurs).
Xcode 8 GM seed Storyboard issue
Xcode 8 - Les storyboards précédents se déformaient
(j'ai utilisé anyH anyW largeur 600) Lorsque Xcode a été mis à jour vers Xcode 8, il a changé la taille de tous mes ViewControllers. En conséquence, toute la mise en page a été déformée.
Actuellement, je ne vois que 3 solutions pour le problème (je ne serais pas sûr d'attendre bientôt un correctif).
1. allez pour chaque Viewcontroller et corrigez-le par
Update Frames
.Allez dans le ViewController principal
Size Inspector -> Freeform -> 600
car la plupart des contrôleurs sont déduits que cela changera la taille de chacun d'entre eux (soyez prudent sur l'impact des nouvelles fonctionnalités que Apple souhaite présenter).3. Ignorez les modifications de git pour le storyboard (je ne le suggérerais pas car Apple a également inséré des mises à jour qui peuvent être importantes pour Xcode).
Lien supplémentaire pour les nouvelles fonctionnalités d'AutoLayout dans Xcode 8 (WWDC16): Making Apps Adaptive, Part 1
la source
Dans mon cas, fonctionne les solutions suggérées par Akhil Kateja et je dois également réinitialiser la largeur et la hauteur de la vue principale:
1) Définissez la taille de la vue sur la forme libre
2) Réinitialisez la largeur et la hauteur de la vue à la taille d'origine:
Enfin, enregistrez et vous avez terminé.
la source
Pour moi, la solution était simplement de cliquer sur le UIViewController ayant des problèmes, puis
Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames
Il a réorganisé les vues pour s'adapter aux contraintes existantes en fonction de la nouvelle vue par défaut sélectionnée (iPhone 7 dans mon cas).
A noter également: si vous obtenez un avertissement de vue déplacée de la barre de navigation comme je l'ai fait, sélectionnez simplement UINavigationController / UIViewController, puis
Attributes Inspector > Bar Visibility > Shows Navigation Bar
désactivez-le, puis réactivez-le .la source
Définir la taille de la vue sur Freeform à partir de Inferred a fonctionné pour moi. Il se trouve sous l'en-tête Mesures simulées dans l' inspecteur d'attributs .
la source
J'ai eu le même problème et je l'ai résolu en mettant à jour de force les contraintes de vue du contrôleur. Placez le code suivant dans votre viewDidLoad () fonction
la source
J'ai sélectionné chaque contrôleur et cliqué sur "Mettre à jour les cadres" et cela a corrigé la mise en page.
la source
La réponse de @ david-truong ( https://stackoverflow.com/a/39589860/1407528 ) ne fonctionne pas dans mon cas, donc si vous êtes dans la même situation, essayez ceci:
Si tous vos appareils sont mis à jour vers iOS 10+, cette version de Xcode ne reconnaîtra pas ces appareils comme des appareils compatibles. Alors, essayez avec cette astuce:
Remarque: les nouvelles fonctionnalités telles que Swift ne seront pas disponibles en utilisant cette astuce, mais vous devriez pouvoir charger et créer votre projet.
la source
J'espère que cela aidera
Lorsque j'ai mis à jour Xcode de la version 7.3 à Xcode 8 et que j'ai exécuté l'application, certaines des vues sont parfaitement affichées mais certaines sont déformées.Ensuite, j'ai vérifié le fichier de la pointe et cela m'a invité à choisir la taille de l'appareil particulière, puis à afficher la pointe en fonction de cela la taille de l'appareil, ce qui n'est pas le cas
Any-Any(Xcode 7.3)
. Ainsi, tous les fichiers nibs ne s'affichent pas correctement.Solution de travail de moi: - appuyez sur la flèche jaune comme indiqué dans l'image ci-dessous
il affichera une fenêtre contextuelle affichant des options telles que
choisissez
Update Frames
avecApply to all views in container
checked.it résoudra environ 90% de l'interface utilisateur déformée et le reste du problème des contraintes de mise en page automatique pourra être résolu manuellement.la source
J'ai résolu le problème en utilisant la version 7.3.1 de Xcode, vous pouvez télécharger le fichier .dmg à partir du portail des développeurs Apple. J'ai utilisé l'Autoresizing dans chaque application et cela fonctionne très bien pour moi. Je mettrai à jour vers Xcode 8 uniquement s'ils peuvent résoudre ce bogue.
Téléchargez-le ici: https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg
la source
Pour résoudre un problème similaire, j'ai configuré le xib comme Freeform (non déduit) ET enregistré le fichier xib comme compatible Xcode 7.x. Les deux étapes étaient nécessaires dans mon cas. J'espère que cela aide!
la source
Je remarque un nouveau bouton dans Xcode 8.2, (vérifiez le cercle orange dans l'image). Cela vous aidera.
Étapes: 1. Ouvrez le storyboard et sélectionnez le périphérique de votre choix 2. Sélectionnez simplement le contrôleur de vue 3. Cliquez sur le bouton mentionné (comme dans l'image) 4. Il mettra à jour le cadre de ce contrôleur de vue et vous pourrez continuer avec
Je n'ai pas trouvé de meilleure solution que celle-ci. Veuillez répondre si vous en trouvez un.
la source
la mise à jour des contraintes et des sous-vues de mise en page dans viewdidload résout le problème
la source