Compartir a través de


UIView.Frame Propiedad

Definición

Coordenadas de la vista relativas a su contenedor.

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

Valor de propiedad

El valor de esta propiedad está en puntos, no en píxeles.

Atributos

Comentarios

La Frame propiedad se expresa en términos del sistema de Superviewcoordenadas del . (La Bounds propiedad se expresa en términos del sistema de thisUIViewcoordenadas).

En el ejemplo siguiente se muestra solo una manera de que el sistema de coordenadas y los Framevalores pueden variar de la UIViewdel objeto Bounds. En este caso, se coloca un UIImageView objeto con una inicial Frame que se origina en {100,100} y de tamaño {100,100}. Una vez girado, tanto el origen como el tamaño del desplazamiento del Frame rectángulo delimitador: el origen para dar cabida a la rotación y los tamaños para contener la diagonal del {100,100} cuadro. de Bounds los flowerView restos [{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);            

Cuando se realizan cambios en esta propiedad, Center se actualiza con la nueva ubicación y Bounds se actualiza con las nuevas dimensiones y se realiza un nuevo diseño de las subvistas.

Cambiar esta propiedad no desencadenará una llamada a a Draw(CGRect) menos que establezca la ContentMode propiedad Redrawen .

Al menos en iOS 6 y versiones posteriores, cambiar esta propiedad hace que se vuelva a diseñar las subvistas, incluso si las dimensiones son las mismas. Esto puede causar problemas de rendimiento, ya que algunas vistas (como UITableView) pueden realizar algunos cálculos muy costosos cuando se diseñan.

Si la ContentMode propiedad está establecida Redrawen , puede evitar un nuevo dibujo de la vista si actualiza la Center propiedad en lugar de actualizar frame, ya que se moverá simplemente la vista sin desencadenar una llamada a LayoutSubviews().

Esta propiedad participa en el protocolo de animación implícita, al cambiarla fuera de una transacción se desencadenará una animación implícita para sus valores.

Si cambia la Transform propiedad a una matriz que no representa la matriz de identidad, el cambio de esta propiedad puede tener consecuencias imprevistas. En esos casos, debe actualizar Center y Bounds directamente.

Se aplica a