Voici un avant et un de mes écrans après la mise à niveau vers Xcode 8.
Tout ce que je fis, c’est d’ouvrir mon main.storyboard et à partir de là, je construis et exécute mon application sur mon téléphone.
Dans mon contrôle de version, je peux voir que Xcode apporte beaucoup de modifications à mon tableau principal juste à mon ouverture.
Chaque fois que je supprime ces modifications, je peux voir ce que j’ai l'habitude de voir dans Xcode 7.3.1.
Mais dès que je rouvre le constructeur d’interface avec mon scénarimage, je constate que ces changements se sont réinstallés.
Est-ce que je peux faire quelque chose ici?
J'ai eu un problème similaire avec les images tableview qui n'apparaissaient pas une fois que j'ai converti le fichier de scénario en compatibilité Xcode8. Cela ressemble à un bogue avec Xcode8. Ainsi, jusqu'à ce qu'un correctif soit publié, voici une solution:
Si vous devez apporter d'autres modifications au fichier de scénario, suivez à nouveau ces étapes.
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 l’aperçu du document de Storyboard, j’ai cliqué sur chaque scène comportant 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 "Mettre à jour les cadres" (numéro 2 sur la capture d'écran) qui résolvait tous les problèmes de mise en page par scène.
Cependant, une scène dans mon cas était toujours en train de pleurer après la transition de Xcode7 à Xcode8. Je devais le corriger manuellement en ajustant les contraintes ou en ajoutant des contraintes manquantes.
Ouf, pas belle surprise de XCode8 et Storyboards. Si vous utilisez l'éditeur AppCode, vous n'aurez pas ce problème, car il ne prend pas en charge Storyboards; P
Bonne chance!
Xcode 8.1 Beta 2 résout ce problème. S'il vous plaît vérifier ce lien de téléchargement
S'il vous plaît suivez les discussions pour toute solution possible: (Je crois que cela arrive à de nombreux développeurs).
Xcode 8 GM numéro du storyboard d'origine
Xcode 8 - Les story-boards précédents sont déformés
(J'ai utilisé anyW anyW width 600) Lors de la mise à jour de Xcode en Xcode 8, toutes les tailles de ViewControllers ont été modifiées. En conséquence, toute la mise en page était déformée.
Actuellement, je ne vois que 3 solutions au problème (je ne ferais pas confiance en attendant la solution rapidement).
1.Allez pour chaque contrôleur de vue et corrigez-le par Update Frames
.
2.Accédez au ViewController principal Size Inspector -> Freeform -> 600
puisque la plupart des contrôleurs sont déduits, la taille de chacun d’eux sera modifiée (attention à l’impact des nouvelles fonctionnalités Apple mon envie de présenter).
3. Ignorez les modifications apportées à git pour le storyboard (je ne le suggérerais pas car Apple insère également des mises à jour pouvant être importantes pour Xcode).
Lien supplémentaire vers les nouvelles fonctionnalités AutoLayout dans Xcode 8 (WWDC16): Rendre les applications adaptatives, première partie
Dans mon cas, les solutions suggérées par Akhil Kateja et moi avons également besoin de réinitialiser la largeur et la hauteur de la vue principale:
1) Définissez la taille de la vue sur une forme libre
2) Réinitialisez la largeur et la hauteur de la vue à la taille d'origine:
Enfin, sauvegardez et vous avez terminé.
Pour moi, la solution consistait simplement à cliquer sur le contrôleur UIViewController qui rencontrait des problèmes, puis sur Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames
.
Il a réorganisé les vues pour les adapter aux contraintes existantes en fonction de la nouvelle vue par défaut sélectionnée (iPhone 7 dans mon cas).
Notez également que si vous obtenez un avertissement Barre de navigation mal placée comme moi, sélectionnez simplement UINavigationController/UIViewController puis Attributes Inspector > Bar Visibility > Shows Navigation Bar
- basculez-le sur OFF, puis à nouveau sur ON.
Définir la taille de la vue sur Freeform à partir de inféré a fonctionné pour moi. Vous pouvez le trouver sous la rubrique Mesures simulées dans Inspecteur d'attributs.
J'espère que cela aidera
Lorsque j'ai mis à jour Xcode de 7.3 à Xcode 8 et que je lance l'application, certaines vues sont parfaitement affichées mais d'autres sont déformées.Ensuite, j'ai vérifié le fichier nib et cela m'a incité à choisir une taille de périphérique particulière, puis à afficher le nib en fonction de ces informations. taille du périphérique qui est hors cours, pas Any-Any(Xcode 7.3)
. Tous les fichiers nibs ne s’affichent donc pas correctement.
Solution travail me: - appuyez sur la flèche jaune comme indiqué dans l'image ci-dessous
il va inviter une fenêtre contextuelle qui affiche des options comme
choisissez Update Frames
avec Apply to all views in container
coché.Il résoud environ 90% de l'interface utilisateur déformée et le reste du problème de contrainte de mise en page automatique peut être résolu manuellement.
J'ai sélectionné chaque contrôleur et cliqué sur "Mettre à jour les cadres" et il a corrigé la mise en page.
La réponse de @ david-truong ( https://stackoverflow.com/a/39589860/1407528 ) ne fonctionne pas dans mon cas. 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 avec cette astuce, mais vous devriez pouvoir charger et construire votre projet.
J'ai eu le même problème et je l'ai résolu en forçant à mettre à jour les contraintes de vue du contrôleur. Mettez le code suivant dans votre fonction viewDidLoad ()
self.view.layoutIfNeeded()
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 Image). 4. Le cadre de ce contrôleur de vue sera mis à jour et vous pourrez continuer.
Je n'ai pas trouvé de meilleure solution que celle-là. S'il vous plaît répondre si trouvé un.
Pour résoudre un problème similaire, j'ai configuré xib comme étant Freeform (non inféré) ET le fichier xib enregistré comme compatible Xcode 7.x. Les deux étapes étaient nécessaires dans mon cas. J'espère que ça aide!
J'ai résolu le problème en utilisant Xcode Version 7.3.1, vous pouvez télécharger le fichier .dmg à partir du portail de développeurs Apple. J'ai utilisé l'auto-dimensionnement dans chaque application et cela fonctionne très bien pour moi. Je ne mettrai à jour Xcode 8 que s’ils peuvent résoudre ce problème.
Téléchargez-le ici: https://developer.Apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg
mettre à jour les contraintes et les vues secondaires de présentation dans viewdidload résout le problème
- (void) viewDidLoad {
[self.view updateConstraints];
[self.view layoutSubviews];
[super viewDidLoad];
}