60 votes

UIView autoresizingMask - Interface Builder to Code - Créer par programme des jambes de force et des ressorts

J'ai présenté des vues secondaires avec Interface Builder, mais j'aimerais plutôt le faire en code.

J'ai lu la documentation UIView sur la définition de la propriété view.autoresizingMask. Je cherche une explication logique sur la façon de traduire les jambes de force et les ressorts en utilisant les différents masques proposés (par exemple UIViewAutoresizingFlexibleLeftMargin , etc.).

132voto

MattyG Points 5126

Lors de la définition d'un redimensionnement automatique de masque pour la vue, l'utilisation d'un bit à bit inclusive OU (|) pour spécifier les ressorts et les jambes de suspension.

Les ressorts sont représentés par la spécification d'un masque:

verticale de printemps: UIViewAutoresizingFlexibleHeight

horizontal printemps: UIViewAutoresizingFlexibleWidth

Struts sont représentés par l'absence de l'un des quatre " flexible de marge des masques (c'est à dire si une jambe de force n'existe pas, le masque pour que la marge est spécifié):

UIViewAutoresizingFlexibleLeftMargin

UIViewAutoresizingFlexibleRightMargin

UIViewAutoresizingFlexibleTopMargin

UIViewAutoresizingFlexibleBottomMargin

Par exemple, une vue horizontale printemps et en haut et en bas jambes de suspension aurait la largeur, et les marges gauche et droite spécifié comme flexible:

mySubview.autoresizingMask = (UIViewAutoresizingFlexibleWidth |    
                              UIViewAutoresizingFlexibleLeftMargin |  
                              UIViewAutoresizingFlexibleRightMargin);

enter image description here

9voto

CodaFi Points 29073

UIViewAutoResizingMasks sont ce que nous appelons "struts" et des "sources". Considérez ceci: vous avez une grande place avec un petit carré à l'intérieur. Pour ce carré de rester parfaitement centré, vous devez définir une largeur fixe à partir de chaque bord intérieur de la grande place, ainsi que pour les entraver. Ce sont des jambes de force.

Ressorts, d'autre part, de travailler plus comme une UIView n'lors de la rotation. Disons que notre point de vue doit rester sur le bas de l'écran, alignés dans le centre (un peu comme une UIToolbar). Nous voulons garder printemps Haut flexible de sorte que lorsque la vue pivote à partir de 460 px à 320 px, il garde la même position par rapport à l'écran est maintenant changé de dimension. Soulignant l'un de ces ressorts de l'IB est égal à mettre le bon UIViewAutoResizingMask et met en évidence les principales printemps spécifiquement ressemble à l'appel de myView.autoResizingMask = UIViewAutoresizingFlexibleTopMargin.

Les valeurs peuvent être utilisés en tandem en les enfermant dans une paire de parenthèses et en utilisant un opérateur ou comme myView.autoResizingMask = (UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin)

Les masques sont les chiffres des rapports pour vous, car ils sont une définition de type d'un NSUInteger et ceux sont les indicateurs qu'apple les a assignés. Cmd+clic sur un de voir sa méthode de définition.

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