UIView.Frame Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 this
UIViewcoordenadas).
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.