web-dev-qa-db-fra.com

Storyboard: Comment laisser Xcode mettre à jour automatiquement les images lorsque je modifie les contraintes de présentation?

J'ai visionné une vidéo WWDC 2014 (Nouveautés de Interface Builder) dans laquelle le présentateur utilise Storyboard et modifie la hauteur d'un prototype de cellule de vue de tableau dans un contrôleur de vue de tableau (environ 7m30s). Je vois toutes les sous-vues de cette cellule redimensionner alors qu'il traîne la poignée de hauteur sur la cellule. C’est formidable, car vous pouvez maintenant voir comment vos contraintes d’agencement se comportent très rapidement dans différents scénarios.

Il n'explique pas comment il le fait. En effet, lorsque je déplace la hauteur d'un prototype de cellule de vue de table, les cadres de toutes mes sous-vues ne sont pas mis à jour. Elles ne sont mises à jour que lorsque je choisis dans le menu: Editeur> Résoudre les problèmes de mise en page automatique> Mettre à jour les cadres (Toutes les vues dans le contrôleur de vue Table)

Existe-t-il un paramètre Xcode qui permute en direct de mettre à jour les cadres de vue que je vois dans Storyboard, en respectant les contraintes de présentation?

18
Tom van Zummeren

En théorie, vous devriez pouvoir activer «Descendants» dans le menu contextuel «Comportement de redimensionnement» (en bas à droite de l'éditeur de storyboard).

En pratique, c'est cassé dans votre cas. J'ai le même problème. Vous pouvez signaler le bogue à l’adresse http://bugreport.Apple.com/ .

Peut-être que cela fonctionne mieux à Yosemite. Je cours toujours Mavericks.

6
rob mayoff

Mise à jour: Sur XCode 8 Bêta 5, j'ai testé et trouvé XIB où je devais mettre à jour manuellement Frame est maintenant automatiquement mis à jour lorsque je redimensionne la vue de forme libre.

Sur XCode 7.3.1: Ce n'est pas une solution, mais je trouve un bon compromis. 

Allez dans XCode -> Préférences -> Liaisons de touches -> Recherchez "Mettre à jour les cadres". Supprimez les raccourcis existants pour le premier élément (ce qui semble ne pas fonctionner) et remplacez le raccourci par CTRL + OPTION + COMMANDE + P pour le deuxième élément. Le raccourci est un exemple, vous pouvez ajouter le raccourci que vous voulez qui n’entrera pas en conflit avec les liaisons existantes).

Maintenant, chaque fois que vous redimensionnez, vous pouvez rapidement utiliser le raccourci pour mettre à jour le cadre.

1
Vlad

La réponse correcte indique qu'il s'agit d'un bogue, mais il se peut qu'Interface Builder ne puisse pas comprendre vos contraintes pour les mettre à jour automatiquement. J'utilise Xcode 6.2 sur Yosemite. Je pensais avoir le même problème, mais mes contraintes étant devenues plus complètes, Interface Builder les met à jour au fur et à mesure.

0
JamWils