Problème d'autorégulation dans le Xcode 8

=== MODIFIER ========

cette question est maintenant résolue dans Xcode 8.1 . J'ai vérifié.

================

Je ne connais pas l'auto-disposition correctement. Donc, j'utilise l'option d'auto-dimensionnement dans toutes mes applications et c'est très bien pour moi. Je suis capable de répondre à toutes mes exigences par ceci sans aucun problème.

maintenant dans Xcode 8, j'ai migré mon ancien projet swift vers swift 3. Maintenant la question se pose.

Storyboard SS

voir en image, j'ai mis Autoredimensionnement, et son fonctionnement sans problème dans tous les appareils jusqu'à présent et ce projet est en direct dans AppStore, de sorte que je ne peux pas montrer L'UI ou storyboard.

maintenant je dois faire une mise à jour dans le projet. Donc je travaille dans Xcode 8 maintenant. Mais mon auto-dimensionnement ne fonctionne pas correctement, car tous les contrôles sont arrivés le centre et l'INTERFACE utilisateur est foiré.

Output image

et le problème persiste dans le dispositif aussi. J'ai aussi vérifié le simulateur et le dispositif. Mais le problème est là aussi. Toute suggestion et aide sera appréciée. Merci à l'avance.

EDIT:

hier, il est question dans runtime seulement, mais aujourd'hui storyboard a également changé de point de vue comme ceci image

Storyboard image

ce qui veut dire que tout le design de L'interface est foutu. C'est bizarre.

32
demandé sur Max 2016-09-16 10:38:53

9 réponses

face au même problème. De mon point de vue, ce problème s'est produit lorsque nous utilisons l'autoresizing et que nous ne définissons que le masque d'autoresization interne à n'importe quel contrôleur de vue. Comme,

enter image description here

si nous utilisons aussi limite autoresizingMask à ce moment-là ne faisant pas face à cette question. Comme,

enter image description here

Je ne sais pas si c'est réel bug de xcode 8 ou supprimer cette fonctionnalité dans xcode 8.

donc, finalement ma suggestion est que nous devons utiliser la mise en page automatique dans xcode 8.

7
répondu Keyur Hirani 2016-09-19 04:55:25

s'il vous plaît essayer de décocher autores dimensionnement de xib ou storyboard. Et dans viewDidLoad set [_scrollView setAutoresizesSubviews:YES];

l'Essayer si ce résoudre votre problème

Edit: En cas de storyboard décochez la case Resize view from NIB option.

7
répondu Hassy 2016-12-19 15:51:49

Je ne suis pas sûr pour les storyboards mais j'ai trouvé une solution temporaire pour les fichiers xib. Dans le panneau Utilities (panneau de droite)sélectionnez L'onglet File Inspector. Sous la section Interface Builder Document, sélectionnez le fichier à ouvrir dans " XCode 7.x". Il vous demandera de confirmer que vous ne voulez pas utiliser les fonctionnalités XCode 8, enregistrer le fichier et le fermer.

enter image description here

3
répondu Srdr 2016-09-29 12:42:45

j'ai aussi face à problème de même pour le scrollView dans Xcode8

j'ai une solution pour travailler avec scrollView

prendre d'abord un UIView simple et ajouter tous les composants que vous voulez ajouter dans scrollView et donner ce composant à l'autoSizing

et aussi prendre un scrollView et programmatically définir le cadre de vue et aussi définir scrollView contentSize et ajouter votre vue dans scrollView

comme sage, dans mon cas je ajouter ce code dans viewDidLoad pour le projet swift

// add view to scrollview

self.scrollObjForNextAppointment.contentSize = CGSize(width:self.scrollObjForNextAppointment.frame.size.width,height:410)

self.viewForScrollContent.frame = CGRect(x:0,y:0,width:self.scrollObjForNextAppointment.frame.size.width,height:410)

self.scrollObjForNextAppointment.addSubview(self.viewForScrollContent)

c'est du travail pour moi, merci!

2
répondu Sapana Ranipa 2016-10-03 09:07:09

Xcode 8 beta 2 résolu ce problème!! J'ai déjà checkeded maintenant!

2
répondu Genevios 2016-11-03 10:26:07

Résolu en décochant "Auto redimensionner les fichiers" à ScrollView

enter image description here

1
répondu Thippi 2016-09-20 12:31:13

mise à jour le problème semble avoir été corrigé dans le Xcode 8.1


ayant le même problème et j'ai constaté que le contrevenant ici est l'élément UIScrollView . Il suffit de déplacer tout à l'extérieur de votre scroller et vous verrez que tout fonctionne très bien, comme avant.

ce qui signifie qu'une solution possible serait de placer votre contenu scrollable dans un ordinaire UIView, puis le remplacer par UIScrollView à l'exécution, programmatiquement.

1
répondu mojuba 2017-02-06 11:51:39

un modérateur a gentiment supprimé ma réponse ici comme une copie, donc voir ma réponse à:

d'un redimensionnement automatique sous iOS 10 ne fonctionne pas

en réponse à max, Oui, redimensionner un tas de subviews peut être douloureux. C'est pourquoi j'ai suggéré d'ajouter une seule "vue de contenu" à la vue de défilement et de déplacer tous vos sous-vues existants à l'intérieur de cette vue. Autosize les subviews à l'intérieur de la vue de contenu comme vous l'avez fait avec le le scrollview, et autosize l'affichage du contenu de la scrollview.

c'est cette vue de contenu que vous redimensionnez alors à l'intérieur de viewDidLayoutSubviews.

et encore une fois, la" vue de contenu " à l'intérieur de la construction scrollview est à peu près le moyen standard pour obtenir des vues de défilement de taille automatique en utilisant autolayout, donc il devrait être considéré comme une pratique exemplaire.

Cette méthode est décrite ici...

https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios /

ma méthode semble un peu alambiquée, mais j'ai pu rafistoler un scénario avec une douzaine de scènes et de Vc's en 15 minutes. Il aurait fallu beaucoup, beaucoup, beaucoup plus de temps pour tout reconstruire en utilisant la mise en page automatique.

0
répondu Michael Long 2017-05-23 12:17:36

Apple vient de sortir avec XCode 8.2, ce qui résout ce problème pour moi. J'ai utilisé XCode 7.3.1 pour ma conception d'interface parallèle à 8.1, mais je peux maintenant utiliser 8.2 sans aucun problème.

le storyboard est mis à jour avec les largeurs et la hauteur des cadres cependant, pour s'adapter à la nouvelle fonctionnalité " View as:". Bien que cela ne semble pas affecter le fonctionnement sur le dispositif/simulateur.

curieusement, le bugfix n'est pas noté dans le XCode 8.2 notes de mise à jour .

réponse Originale à cette question ici

0
répondu Thermometer 2017-05-23 11:54:05