217 votes

Masques de redimensionnement par programmation builder Vs Interfact / xib / plume

J'ai eu quelques confusions, je pense que j'ai résolu maintenant, mais je voulais juste une confirmation.

J'étais dans un (probablement fausse) hypothèse que l'activation de la marge de droite de l'indicateur dans xib est équivalent à l'utilisation de UIViewAutoresizingFlexibleLeftMargin dans le code et ainsi de suite.

Donc, j'ai l'habitude de penser selon cette capture d'écran: enter image description here

Plus tard aujourd'hui, j'ai eu à vérifier, et je suis tombé sur ce fil.

Et aussi la documentation d'apple, droit, avec la section avec le titre "gestion des Modifications de Mise en page Automatiquement à l'Aide d'un redimensionnement automatique de Règles" dans ce lien: http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html

Donc, j'ai maintenant un nouveau concept dans mon esprit quant à la façon dont le cadre d'un redimensionnement automatique des masques par programme serait équivalent à xib paramètres:

Scénario 1: Réglage n' (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight) est équivalent à:

(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)

Dans XIB?

Scénario 2: Paramètre (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin) dans le code est équivalent à:

(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)

Dans XIB?

Sont mes 2 renouvelé scénarios corrects? Je suis en ce moment dans ma compréhension?

Merci, Raj

47voto

Sam Points 13570

Oui, vous avez cité les choses correctement. Aussi, je suis d'accord qu'il se sent un peu en arrière, donc, pour cette raison, je vous remercie de votre post.

Vous aimeriez l'aide d'une Macro du préprocesseur UIViewAutoresizingFlexibleMargins lors d'une UIView marge du flexible dans tous les sens. J'ai mis cela dans le fichier d'en-tête précompilé pour qu'il soit inclus partout.

#define UIViewAutoresizingFlexibleMargins                 \
              UIViewAutoresizingFlexibleBottomMargin    | \
              UIViewAutoresizingFlexibleLeftMargin      | \
              UIViewAutoresizingFlexibleRightMargin     | \
              UIViewAutoresizingFlexibleTopMargin

À l'aide de UIViewAutoresizingFlexibleMargins fera un Élément de l'INTERFACE utilisateur de rester centré, car il ne sera PAS étreindre tout un côté. Pour rendre l'élément grandir / rétrécir avec ses parents, ensemble l' UIViewAutoresizingFlexibleWidth et UIViewAutoresizingFlexibleHeight respectivement.

J'aime utiliser des UIViewAutoresizingFlexibleMargins parce que je peux plus tard de référence comme:

myView.autoresizingMask = UIViewAutoresizingFlexibleMargins;

au lieu de

myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;

Souvent je vois ces marges OU ed sur une seule ligne comme dans l'exemple ci-dessus. Juste difficile à lire.

35voto

DarkDust Points 47584

Oui, Interface Builder l'a « renversé » dans un sens (ou UIView, selon la façon dont vous regardez). Votre cités « scénarios » sont corrects.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X