UIView.Frame Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Координаты представления относительно его контейнера.
public virtual CoreGraphics.CGRect Frame { [Foundation.Export("frame")] get; [Foundation.Export("setFrame:")] set; }
member this.Frame : CoreGraphics.CGRect with get, set
Значение свойства
Значение этого свойства — в точках, а не в пикселях.
- Атрибуты
Комментарии
Свойство Frame выражается в терминах Superviewсистемы координат . (Свойство Bounds выражается в виде this
UIViewсистемы координат.)
В следующем примере показан только один способ, которым Frameсистема координат и значения могут отличаться от UIViewBoundsсистемы координат . В этом случае UIImageView помещается с начальным Frame{100,100} значением и размером {100,100}. После поворота смещаются как источник, так и размер ограничивающего Frame прямоугольника: источник для размещения поворота и размеры, чтобы содержать диагональ коробки {100,100} . flowerView
Останков Bounds [{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);
При внесении изменений в это свойство Center объект обновляется с учетом нового расположения, а Bounds обновляется новыми измерениями и выполняется изменение макета вложенных представлений.
Изменение этого свойства не приведет к вызову , Draw(CGRect) если для свойства не задано значение RedrawContentMode .
По крайней мере в iOS 6 и более поздних версиях изменение этого свойства приводит к изменению макета вложенных представлений, даже если размеры одинаковы. Это может привести к проблемам с производительностью, так как некоторые представления (например, UITableView) могут выполнять очень дорогостоящие вычисления при их создании.
Если свойству ContentModeRedrawприсвоено значение , можно избежать перерисовки представления, если вы обновите Center свойство вместо обновления Frame, так как представление будет просто перемещаться, не вызывая вызов LayoutSubviews().
Это свойство участвует в протоколе неявной анимации, изменение его вне транзакции приведет к активации неявной анимации для его значений.
Если изменить Transform свойство на матрицу, которая не представляет матрицу удостоверений, изменение этого свойства может иметь непредвиденные последствия. В таких случаях следует обновить Center и Bounds напрямую.