Où est la checkbox Xcode "Traduit Masque Autoresizing en Contraintes"

Dans l'une des videos WWDC 2012, Auto Layout By Example, ils montrent une application OS X à l'aide de Autolayout. À environ 7 ou 8 minutes, il montre comment, pour une seule vue, vous pouvez décocher une case dans l'inspecteur d'attributes. la boîte s'appelle quelque chose comme "Traduit Masque Autoresizing en Contraintes" . Maintenant, je suis bien conscient de l'équivalent du code de cette boîte, le boolean translatesAutoresizingMaskIntoConstraints , mais je ne peux pas find cette checkbox n'importe où dans les projets iOS ou OS X. Mon projet utilise Autolayout. Je voudrais vraiment cette checkbox, parce que l'une des choses que je rencontre dans l'apprentissage Autolayout (et la conversion d'une application springs / struts à AL) est le million de contraintes générées par Xcode pour chaque vue, et comment les nettoyer et replace tout / tout dans le code. Ce que je voudrais pour faire cette conversion une vue à la fois est de désactiver ces contraintes générées automatiquement.

Pourquoi ne puis-je pas voir cette checkbox? J'utilise Xcode 4.6.

Cette checkbox est disponible dans Interface Builder (IB), mais uniquement si vous développez des projets Cocoa ciblés pour OS X. Pour iOS, il n'est pas disponible pour le moment. Vous pouvez uniquement le définir par programme.

La layout automatique sur iOS, d'après ce que j'ai compris – et d'autres personnes ne se sentent pas libres d'intervenir ici – n'est pas une implémentation complète de ce qui est disponible sur OS X.

Pour être honnête, count tenu de ce que vous dites après, cette checkbox est probablement quelque chose dont vous n'avez pas besoin de vous inquiéter. Je pense qu'il est important de mettre à jour les projets OS X vers Auto Layout, mais généralement pour iOS, il est peu probable que vous mixiez l'un et l'autre. C'est-à-dire que vous cochez votre Xib dans l'inspecteur de files pour utiliser "Autolayout" ou vous ne le faites pas.

entrez la description de l'image ici

Cela dit, il y a un cas d'utilisation où vous devrez peut-être jouer avec ce drapeau. C'est si vous voulez créer un file Xib autonome pour une vue, puis chargez-le par programme en utilisant loadNibNamed . Dans ce cas, les contraintes de redimensionnement automatique de style ancien sont par défaut converties en nouvelles contraintes de mise en forme automatique. Typiquement je veux append le mien donc je mets ce drapeau à zapper.

myView.translatesAutoresizingMaskIntoConstraints = NO

En tout cas c'est une autre histoire.

Voici le lien pour plus d'informations, bien que vous l'ayez déjà vu:

Adopter la layout automatique

Une chose que je dirais est que si vous avez du mal avec Auto Layout au début – et vous ne seriez pas humain si vous ne l'étiez pas, nous l'avons tous été – alors je restrais avec Interface Builder et penser à la règles d'or. Le plus important pour moi est qu'il déteste l'ambiguïté. C'est comme un vide dans la nature. Avant de pouvoir supprimer la contrainte que vous ne voulez pas , vous devez append celle que vous voulez, puis zapper l'ancienne.

L'autre erreur que j'ai faite était de mélanger Auto Layout et les frameworks. Donc, je ferais du code qui vérifie la largeur du cadre, puis l'applique aux contraintes. Mauvaise erreur. Cela finit vraiment en larmes. Quand vous arrivez en Auto Layout, il est essentiel d'oublier de faire quoi que ce soit avec CGRect , frame , etc.

Reste avec. Commencez par quelques vues simples dans IB et expérimentez. Il y a une méthode à la folie, vraiment.

Un autre lien qui vaut la peine d'être regardé est:

10 choses que vous devez savoir à propos de Cocoa Autolayout