Partager via


UIView.Frame Propriété

Définition

Coordonnées de la vue par rapport à son conteneur.

public virtual CoreGraphics.CGRect Frame { [Foundation.Export("frame")] get; [Foundation.Export("setFrame:")] set; }
member this.Frame : CoreGraphics.CGRect with get, set

Valeur de propriété

La valeur de cette propriété est en points, et non en pixels.

Attributs

Remarques

La Frame propriété est exprimée en termes de Superviewsystème de coordonnées de . (La Bounds propriété est exprimée en termes de système de thisUIViewcoordonnées de .)

L’exemple suivant montre une seule façon dont le Framesystème de coordonnées et les valeurs peuvent varier de celui de UIViewBounds. Dans ce cas, un UIImageView est placé avec une initiale Frame provenant de {100,100} et de taille {100,100}. Une fois la rotation effectué, l’origine et la Frame taille du cadre englobant changent : l’origine pour prendre en charge la rotation et les tailles afin de contenir la diagonale de la {100,100} boîte. le Bounds des flowerView restes [{0,0},{100,100}].

var flowerView = new UIImageView(new RectangleF(100, 100, 100, 100)) {
	Image = UIImage.FromFile("flower.png"),
	ContentMode = UIViewContentMode.Center,
	ClipsToBounds = true
};

flowerView.Transform = CGAffineTransform.MakeRotation((float) Math.PI / 4);
view.AddSubview(flowerView);            

Lorsque des modifications sont apportées à cette propriété, le Center est mis à jour avec le nouvel emplacement et le Bounds est mis à jour avec les nouvelles dimensions et une nouvelle disposition des sous-vues est effectuée.

La modification de cette propriété ne déclenche pas d’appel à, Draw(CGRect) sauf si vous définissez la ContentMode propriété sur Redraw.

Au moins sur iOS 6 et versions ultérieures, la modification de cette propriété entraîne une nouvelle disposition des sous-vues, même si les dimensions sont les mêmes. Cela peut entraîner des problèmes de performances, car certaines vues (comme UITableView) peuvent effectuer des calculs très coûteux lorsqu’elles sont disposées.

Si votre ContentMode propriété a la Redrawvaleur , vous pouvez éviter un redessinage de votre vue si vous mettez à jour la Center propriété au lieu de mettre à jour le Frame, car il suffit de déplacer la vue sans déclencher d’appel à LayoutSubviews().

Cette propriété participe au protocole d’animation implicite. Sa modification en dehors d’une transaction déclenche une animation implicite pour ses valeurs.

Si vous remplacez la propriété par Transform une matrice qui ne représente pas la matrice d’identité, la modification de cette propriété peut avoir des conséquences inattendues. Dans ce cas, vous devez plutôt mettre à jour Center et Bounds directement.

S’applique à