60
votes

Comment corriger «l'ambiguïté de la taille du contenu défilable» dans Xcode 11 (iOS 12, iOS 13) à l'aide de la disposition automatique

Lorsque j'utilise la disposition automatique, je ne parviens pas à configurer un simple UIScrollView dans mon contrôleur de vue dans Xcode 11 beta. Je sais que je dois contraindre la vue de défilement aux bords, puis définir la largeur et la hauteur de la vue de défilement égale à la largeur et à la hauteur de la vue entière qui contient la vue de défilement. Cependant, je n'ai pas la possibilité de définir des largeurs et des hauteurs égales lorsque j'essaye de le faire.

Lorsque je fais le clic droit-faites glisser de la vue de défilement vers la vue principale entière, j'obtiens les options suivantes:

  • Conduire l'espace vers une zone sûre
  • Espace supérieur vers zone sûre
  • Espace arrière vers zone sûre
  • Espace inférieur vers zone sûre
  • Centrer horizontalement dans une zone sûre
  • Centrer verticalement dans une zone sûre

Dans d'autres vidéos, il existe une option "Largeur égale" et "Hauteur égale" que je ne semble pas avoir.

Est-ce que je fais quelque chose de mal ou Apple a-t-il modifié le fonctionnement des vues de défilement dans Xcode 11?


0 commentaires

8 Réponses :


2
votes

J'ai également rencontré ce problème (Version 11.0 beta 3 (11M362v)) . J'ai résolu ce problème en définissant d'abord la mise en page dans xcode10 , puis en l'exécutant dans xcode11 . Je n'ai pas encore trouvé d'instructions officielles prouvant que c'est un problème avec xcode11, mais pour l'instant, je suppose que c'est un problème avec xcode11 bate.


0 commentaires

22
votes

J'ai également rencontré ce problème. J'ai trouvé un bon guide qui m'a aidé:

https://useyourloaf.com/blog/scroll-view-layouts-with-interface-builder/

En gros, ce dont vous avez besoin, ce sont 9 contraintes (en supposant que vous ne vouliez faire défiler que verticalement):

1-4: ScrollView à Superview (haut, bas, début, fin). Assurez-vous de le connecter à la vue parent et non à la zone de sécurité.

5-8: Affichage du contenu vers le guide de mise en page du contenu (haut, bas, début, fin).

  1. Affichage du contenu La largeur est égale à la largeur du guide de disposition du cadre.

1 commentaires

Pour 1-4, l'utilisation d'une zone sûre fonctionne également et je pense qu'une zone sûre devrait être utilisée.



1
votes

Eh bien, j'étais confronté à ce problème mais j'ai trouvé une solution. Le problème est la zone de sécurité . entrez la description de l'image ici

  • Incorporer la vue de défilement dans une interface utilisateur
  • donnez 0 en haut, en bas, à droite et à gauche.
  • donnez maintenant des contraintes de vue de défilement avec cette vue.
  • Ajoutez une hauteur et une largeur égales de la vue de contenu à cette vue.

la vue parent donne automatiquement une zone de sécurité. Tout ce que vous avez à faire est simplement d'incorporer votre vue de défilement dans une vue d'interface utilisateur, puis de donner à cette vue une hauteur et une largeur égales de la vue de contenu.


0 commentaires

157
votes

Désactivation des guides de mise en page de contenu dans l'inspecteur de taille (icône de règle) dans les propriétés

Désactivation des guides de mise en page de contenu dans les propriétés

J'avais le même problème, et en désactivant l'option, il était parti.

J'espère que cela aide! :)


4 commentaires

J'avais trouvé un autre moyen de le faire fonctionner, mais c'est beaucoup plus simple. Merci!


@PranavRamesh J'utilise la redimensionnement automatique et l'option du guide de mise en page du contenu est déjà désactivée mais j'ai le même problème. Quelle est votre autre solution?


@PranavRamesh Quelle est votre autre solution?


Bien que vous supprimiez le Guide de mise en page du contenu, résolvez cet avertissement, je pense que la bonne façon de le résoudre consiste à mettre à jour les contraintes du Guide de mise en page du contenu ou du Guide de mise en page du cadre, lorsque cela est possible. Dans mon cas, j'ai utilisé Frame Layout pour le début, la fin, le haut et le bas; et la mise en page du contenu à la largeur et à la hauteur et résoudre mon problème.



2
votes

Après avoir passé beaucoup de temps sur ce problème de défilement dans Xcode-11. La conclusion sur ce problème est que vous devez choisir l'option de défilement tout en ajoutant une nouvelle contrainte.

Vous pouvez vous référer à la capture d'écran suivante pour résoudre votre problème.

entrez la description de l'image ici

Ces solutions mentionnées ont fonctionné pour moi.


1 commentaires

Je pense que c'est la bonne façon de résoudre cet avertissement. Fonctionne pour moi, merci! Dans mon cas, j'ai utilisé Frame Layout pour le début, la fin, le haut et le bas; et la mise en page du contenu en largeur et hauteur.



0
votes

Pour moi, initialement, les Content Layout Guides du Content Layout Guides sont désactivés par défaut dans ScrollView . J'ai donc simplement activé et désactivé les Content Layout Guides du Content Layout Guides puis l'erreur a disparu automatiquement.


0 commentaires

0
votes

Xcode 11+, Swift 5.

J'ai résolu mon problème, j'ai préparé la vidéo et le code


0 commentaires

1
votes

La désactivation des guides de mise en page du contenu dans les propriétés a fonctionné pour moi.


0 commentaires