Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
12668 lines (12557 sloc) 712 KB
<Type Name="UIView" FullName="UIKit.UIView">
<TypeSignature Language="C#" Value="public class UIView : UIKit.UIResponder, CoreAnimation.ICALayerDelegate, Foundation.INSCoding, IDisposable, System.Collections.IEnumerable, UIKit.IUIAccessibilityIdentification, UIKit.IUIAppearance, UIKit.IUIAppearanceContainer, UIKit.IUICoordinateSpace, UIKit.IUIDynamicItem, UIKit.IUIFocusItem, UIKit.IUIFocusItemContainer, UIKit.IUITraitEnvironment" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit UIView extends UIKit.UIResponder implements class CoreAnimation.ICALayerDelegate, class Foundation.INSCoding, class ObjCRuntime.INativeObject, class System.Collections.IEnumerable, class System.IDisposable, class UIKit.IUIAccessibilityIdentification, class UIKit.IUIAppearance, class UIKit.IUIAppearanceContainer, class UIKit.IUICoordinateSpace, class UIKit.IUIDynamicItem, class UIKit.IUIFocusEnvironment, class UIKit.IUIFocusItem, class UIKit.IUIFocusItemContainer, class UIKit.IUITraitEnvironment" />
<TypeSignature Language="DocId" Value="T:UIKit.UIView" />
<TypeSignature Language="F#" Value="type UIView = class&#xA; inherit UIResponder&#xA; interface IEnumerable&#xA; interface INSCoding&#xA; interface INativeObject&#xA; interface IDisposable&#xA; interface IUIAccessibilityIdentification&#xA; interface IUIAppearance&#xA; interface IUIAppearanceContainer&#xA; interface IUICoordinateSpace&#xA; interface IUIDynamicItem&#xA; interface IUIFocusEnvironment&#xA; interface IUIFocusItem&#xA; interface IUIFocusItemContainer&#xA; interface IUITraitEnvironment&#xA; interface ICALayerDelegate" />
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>UIKit.UIResponder</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>CoreAnimation.ICALayerDelegate</InterfaceName>
</Interface>
<Interface>
<InterfaceName>Foundation.INSCoding</InterfaceName>
</Interface>
<Interface>
<InterfaceName>ObjCRuntime.INativeObject</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Collections.IEnumerable</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIAccessibilityIdentification</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIAppearance</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIAppearanceContainer</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUICoordinateSpace</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIDynamicItem</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIFocusEnvironment</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIFocusItem</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUIFocusItemContainer</InterfaceName>
</Interface>
<Interface>
<InterfaceName>UIKit.IUITraitEnvironment</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>Foundation.Register("UIView", true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Base class used for components that want to render themselves and respond to events.</summary>
<remarks>
<para>
The UIView class is a rectangular area on the screen that is
responsible for displaying content and handling user interactions
with that content. It can also contain other views, allowing the developer to
create complex interactive controls. UIView can thus be used as
either a standalone control, or as a full screen of content built from
many other independent UIViews.
</para>
<para>Views have three major responsibilities:</para>
<list type="bullet">
<item>
<term>
Visualization: UIView instances are responsible for displaying
their content, typically this is done by implementing a draw
method using either <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Core%20Graphics&amp;scope=Xamarin" title="N:CoreGraphics">N:CoreGraphics</a></format>,
OpenGL or customizing some of their visual properties. Views
also have built-in support for animating elements of the view.
</term>
</item>
<item>
<term>
Managing Layout and Subviews: UIViews are responsible for
managing their layout in response to changes in size and
orientation. This includes re-drawing any content they manage,
as well as repositioning children views. This is most often in
response to size of the UIView. For instance, if a view
represents a button, the location of corners would change
according to size. Or, if the device was rotated, the view might
get resized (or it might resize it's child views).
</term>
</item>
<item>
<term>
Event Handling: UIViews are a natural place to handle touch
events since they are self-contained user interface elements.
UIViews subclass the <see cref="T:UIKit.UIResponder" />
class, so they participate both on system events (like motion
and actions) as well as being able to process touch events.
</term>
</item>
</list>
<format type="text/html">
<h2>Event Handling</h2>
</format>
<para>
UIViews can handle touch events in two ways. Developers use the
high-level gesture recognizer API to detect and handle gestures, or roll their own event handling by using the low-level
interface that provides detailed touch events as they happen: every
time a finger touches the screen or is lifted as well as motion of
those fingers. Both are covered below
</para>
<para>
To cause the UIView to respond to user input by updating its
display, developers should call the
<see cref="M:UIKit.UIView.SetNeedsDisplayInRect(CoreGraphics.CGRect)" /> or
<see cref="M:UIKit.UIView.SetNeedsDisplayInRect(CoreGraphics.CGRect)" /> which will queue a call to the developer's
<see cref="M:UIKit.UIView.Draw(CoreGraphics.CGRect)" /> method
where the developer has implemented logic to re-render the control with the new state.
</para>
<para>
Event delivery can be turned off either by setting the
<see cref="P:UIKit.UIView.UserInteractionEnabled" /> to false or you can
disable them temporarily at the application level by calling
<see cref="M:UIKit.UIApplication.BeginIgnoringInteractionEvents" />. In
both cases, events destined for the view are dropped and are not
delivered to the views.
</para>
<para>
Events are disabled while animation are playing back. Devs can
change this behavior when using explicit animations by using the
<see cref="T:UIKit.UIViewAnimationOptions" />'s AllowUserInteraction
flag in the animation.
</para>
<format type="text/html">
<h3>Event Handling with Gesture Recognizers</h3>
</format>
<para>
Interacting with touch interfaces has lead to a series of common
gesture idioms that are used everywhere. Gestures like swiping,
panning, long-presses, pinching rotating and tapping. iOS makes the
process of detecting these common gesture idioms very easy by
providing Gesture Recognizers. These are objects that inherit from
the UIGestureRecognizer class and can detect various standard
gesture idioms. The built-in recognizers include:
</para>
<list type="bullet">
<item>
<term>
<see cref="T:UIKit.UILongPressGestureRecognizer" />
</term>
</item>
<item>
<term>
<see cref="T:UIKit.UIPanGestureRecognizer" />
</term>
</item>
<item>
<term>
<see cref="T:UIKit.UIPinchGestureRecognizer" />
</term>
</item>
<item>
<term>
<see cref="T:UIKit.UIRotationGestureRecognizer" />
</term>
</item>
<item>
<term>
<see cref="T:UIKit.UISwipeGestureRecognizer" />
</term>
</item>
<item>
<term>
<see cref="T:UIKit.UITapGestureRecognizer" />
</term>
</item>
</list>
<para>
In addition, developers can create their own custom gesture recognizer by
subclassing <see cref="T:UIKit.UIGestureRecognizer" />.
</para>
<para>
Developers use the recognizer by creating an instance of the
specific kind of recognizer that is needed, optionally setting some
parameters, and adding it to the view by calling
AddGestureRecognizer. It is possible to attach multiple gesture
recognizers to a single view.
</para>
<para>
For example, the following code creates a gesture recognizer that
detects a panning gesture and assigns it to myView:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
var recognizer = new UIPanGestureRecognizer ((g) => {
Console.WriteLine ("Panning detected");
Console.WriteLine ("Gesture recognizer state: {0}", g.State);
});
myView.AddGestureRecognizer (recognizer);
]]></code>
</example>
<para>
The parameter passed to the lambda (the "g" parameter in the above code)
is an instance of the gesture recognizer that detected the gesture.
The developr can query the parameters of the recognized query by looking at
the properties in the recognizer; the
<see cref="P:UIKit.UIGestureRecognizer.State" /> property contains the
recognizer state.
</para>
<format type="text/html">
<h3>Event Handling with method Overrides</h3>
</format>
<para>
Although Gesture Recognizers provide a high-level and convenient way
of capturing many touch events, they do not cover every
possibility. For those cases, developers should subclass UIView and
override one or more of the following methods inherited from
UIResponder:
</para>
<list type="bullet">
<item>
<term>
<see cref="M:UIKit.UIResponder.TouchesBegan(Foundation.NSSet,UIKit.UIEvent)" />:
sent when one or more fingers touch the screen.
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIResponder.TouchesMoved(Foundation.NSSet,UIKit.UIEvent)" />:
sent when one or more fingers move.
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIResponder.TouchesEnded(Foundation.NSSet,UIKit.UIEvent)" />:
sent when one or more fingers are lifted from the screen.
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIResponder.TouchesCancelled(Foundation.NSSet,UIKit.UIEvent)" />:
sent when the touch is cancelled by the system (for example if
the phone interrupts your application).
</term>
</item>
</list>
<para>
UIViews by default only handle a single touch event at once. If you
want your view to handle multiple touches, you must set the
<see cref="P:UIKit.UIView.MultipleTouchEnabled" /> to true.
</para>
<para>
iOS creates a <see cref="T:UIKit.UIEvent" /> object any time a finger
touches the screen, moves or is removed from the screen. The <see cref="T:UIKit.UIEvent" /> encapsulates all of the touches
that are taking place on the screen at this point, even those that
do not belong to this view. In addition to the <see cref="T:UIKit.UIEvent" />, there is an <see cref="T:Foundation.NSSet" /> containing <see cref="T:UIKit.UITouch" /> objects that represent the state
of each finger on the screen for this particular view.
</para>
<para>
If the application handles touches directly, developers can
override the <see cref="M:UIKit.UIView.GestureRecognizerShouldBegin(UIKit.UIGestureRecognizer)" />
method to control whether an associated
<see cref="T:UIKit.UIGestureRecognizer" /> should execute or not.
</para>
<format type="text/html">
<h2>Creating Views</h2>
</format>
<para>
UIViews are typically created by invoking the constructor that takes
a frame as its parameter (the frame is of type
<see cref="T:System.Drawing.RectangleF" />), for example:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
var myView = new UIView (new RectangleF (0, 0, 100, 100));
]]></code>
</example>
<para>
Most subclasses of UIView will provide a constructor that takes the
initial frame, just like UIView. The section below on subclassing
UIView has more information on how to do
this.
</para>
<para>
The developer should configure the
<see cref="P:UIKit.UIView.AutoresizingMask" /> property, which determines how the
view will be resized when
<see cref="M:UIKit.UIView.SetNeedsLayout" /> is invoked or when the geometry of the
view container changes (for example, in response to a device
rotation).
</para>
<para>
After creating a view, the developer adds it to a containing view.
On the main screen, this could be a UIWindow or it could be the
<see cref="P:UIKit.UIViewController.View" /> property of the current
<see cref="T:UIKit.UIViewController" />. This is done using one of the
following methods:
</para>
<list type="bullet">
<item>
<term>
<see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.InsertSubview(UIKit.UIView,System.nint)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.InsertSubviewAbove(UIKit.UIView,UIKit.UIView)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.InsertSubviewBelow(UIKit.UIView,UIKit.UIView)" />
</term>
</item>
</list>
<para>
Although developers can use the above APIs to add subviews to any
UIView, Apple advises against extending
existing high-level views by adding subviews to them. Instead developers should use the public API those high-level
views expose.
</para>
<format type="text/html">
<h2>Bounds and Sizes</h2>
</format>
<para>
Each view is created with an initial <see cref="P:UIKit.UIView.Frame" />. The Frame is a
<see cref="T:System.Drawing.RectangleF" /> structure that represents both the size and the initial
position for the view. The coordinates for the Frame are used to
specify the position relative to its superview.
</para>
<para>
You can resize and move views around using the frame. Every time
you set the frame the view will layout its subviews. If you are
purely moving the view, using frame can cause performance issues, as
it relays out the view and all its subviews.
</para>
<para>
The <see cref="P:UIKit.UIView.Bounds" /> is the usable
frame of the view. Unlike the <see cref="P:UIKit.UIView.Frame" />, the <see cref="P:UIKit.UIView.Bounds" /> do not use the container's
coordinate space, but instead represent the size in the view's own
coordinate space. By default the <see cref="P:UIKit.UIView.Bounds" /> location is (0,0).
</para>
<para>
When the developer updates the <see cref="P:UIKit.UIView.Bounds" />
property, it will modify the <see cref="P:UIKit.UIView.Frame" /> based on the value of the
<see cref="P:UIKit.UIView.Center" />. Developers can also change the position of a view by updating the <see cref="P:UIKit.UIView.Center" /> property.
</para>
<para>
When the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=UIKit%20UIView%20Bound&amp;scope=Xamarin" title="P:UIKit.UIView.Bound">P:UIKit.UIView.Bound</a></format> property is changed, the size of the view is affected
relative to the <see cref="P:UIKit.UIView.Center" /> property.
</para>
<format type="text/html">
<h2>Animation</h2>
</format>
<para>Apple recommends that app developers use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to implement animations on their <see cref="T:UIKit.UIView" /> objects. Apple also discourages, but has not deprecated, any other animation APIs on the <see cref="T:UIKit.UIView" /> class. Additionally, developers can implement implicit animations for some or all properties by creating a custom views that has a custom <see cref="P:UIKit.UIView.Layer" /> property that provides animation actions for animation keys.</para>
<para>Developers can animate changes in the geometry or appearance of a UIView by creating a new <see cref="T:UIKit.UIViewPropertyAnimator" />, configuring it, and calling its <see cref="M:UIKit.UIViewPropertyAnimator.StartAnimation(System.Double)" /> method. Developers can update the animations (for example, to cancel it) by calling the <see cref="M:UIKit.UIViewPropertyAnimator.AddAnimations(System.Action,System.nfloat)" /> method while the animation is in progress. The <format type="text/html"><a href="https://developer.xamarin.com/recipes/ios/animation/coreanimation/animate_a_uiview_using_uikit/">Animate a UIView using UIKit</a></format> recipe shows how to create an cancel an animation by using the <see cref="T:UIKit.UIViewPropertyAnimator" /> class.</para>
<para>
Alternatively, developers can create animations by calling the
<format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:UIKit.UIView.BeginAnimations(string)&amp;scope=Xamarin" title="M:UIKit.UIView.BeginAnimations(string)">M:UIKit.UIView.BeginAnimations(string)</a></format> method, configuring the animation, making the
changes to the animatable properties and then completing the
transaction by calling <see cref="M:UIKit.UIView.CommitAnimations" />.
</para>
<para>
After the developer calls <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:UIKit.UIView.BeginAnimations(string)&amp;scope=Xamarin" title="M:UIKit.UIView.BeginAnimations(string)">M:UIKit.UIView.BeginAnimations(string)</a></format>, they can
call the following methods to configure the animation:
</para>
<list type="bullet">
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationDuration(System.Double)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationCurve(UIKit.UIViewAnimationCurve)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationDelay(System.Double)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationDelegate(Foundation.NSObject)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationRepeatAutoreverses(System.Boolean)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationRepeatCount(System.Single)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetAnimationDidStopSelector(ObjCRuntime.Selector)" />
</term>
</item>
</list>
<para>
The following example shows how to use these methods in a
transaction:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
UIView.BeginAnimations (null);
UIView.SetAnimationDuration (5);
UIView.SetAnimationCurve (UIViewAnimationCurve.EaseOut);
view.Bounds = new RectangleF (0, 0, 100, 100);
view.Position = new PointF (200, 200);
UIView.CommitAnimations ();
]]></code>
</example>
<para>
Alternatively, developers can create transactions and set configuration
options in the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=UIKit%20UIView%20Animate&amp;scope=Xamarin" title="M:UIKit.UIView.Animate*">M:UIKit.UIView.Animate*</a></format> collection of methods. These methods take, in a single call, the delay, the duration, an animation block, and an action to be invoked when the animation
completes. However, Apple also discourages the use of these APIs. Their use is shown below:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
UIView.Animate (duration, delay, UIViewAnimationOption.Autoreverse,
delegate {
view.Bounds = new RectangleF (0, 0, 100, 100);
view.Position = new PointF (200, 200);
},
delegate {
Console.WriteLine ("Animation completed");
}
);
]]></code>
</example>
<para>
The above is the basic set of animations that are directly supported by the UIView class. For finer control over animations, developers can use the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Core%20Animation&amp;scope=Xamarin" title="N:CoreAnimation">N:CoreAnimation</a></format> API to animate properties on their UI elements. While implicit animation is disabled for the default layer of a UIView, developers can extend the <see cref="T:UIKit.UIView" /> class to create a derived UIView that contain a derived <see cref="T:CoreAnimation.CALayer" /> that handles animation action keys correctly. Developers should note that animated properties that are changed when adding a subview will be animated during the addition if their default value differs from the final value. For example, the "bounds" and "position" keys, if captured and animated, will cause added subviews to animate in from the origin of the screen.
</para>
<example>
<para>To enable implicit animation, the developer first creates a custom layer that supplies customized animations for the keys or combinations of keys that the layer will handle. The following custom layer example animates the corner radius and transparency for custom views that use it:</para>
<code lang="csharp lang-csharp"><![CDATA[
public class CustomLayer : CALayer
{
public CustomLayer(IntPtr ptr) : base(ptr)
{
}
public override CAAnimation AnimationForKey(string key)
{
CABasicAnimation animation = CABasicAnimation.FromKeyPath(key);
animation.From = this.ValueForKey(new NSString(key));
animation.Duration = 1f;
return animation;
}
override public NSObject ActionForKey(string key)
{
if (key == "cornerRadius" || key == "opacity")
{
return this.AnimationForKey(key);
}
else
{
return base.ActionForKey(key);
}
}
}
]]></code>
<para>Then, the developer extends UIView, exporting the "layerClass" selector to return a class for the custom layer created above:</para>
<code lang="csharp lang-csharp"><![CDATA[
public class CustomView : UIView
{
public CustomView(CGRect r) : base(r)
{
}
[Export("layerClass")]
public static ObjCRuntime.Class GetLayerClass()
{
return new ObjCRuntime.Class(typeof(CustomLayer));
}
}]]></code>
<para>Finally, when the property is set, the changed property is animated with the animation properties that were specified by the custom layer:</para>
<code lang="csharp lang-csharp"><![CDATA[
fadeAndRound = () =>
{
redView.Layer.CornerRadius = 40;
redView.Alpha = 0.5f;
};]]></code>
</example>
<format type="text/html">
<h2>Threading</h2>
</format>
<para>
UIView methods are not thread safe. Developers should avoid configuring
or invoking any of the UIView static methods from any thread that is
not the main thread. Newer versions of MonoTouch catch these
mistakes in Debug builds by throwing an exception. See the
<see cref="F:UIKit.UIApplication.CheckForIllegalCrossThreadCalls" /> for
more information.
</para>
<para>
To perform some work in a background thread that must
update any of the UIView properties, or to invoke any of the
UIView static methods, developers should use either the
<format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:Foundation.NSObject.BeginInvokeOnMainThread()&amp;scope=Xamarin" title="M:Foundation.NSObject.BeginInvokeOnMainThread()">M:Foundation.NSObject.BeginInvokeOnMainThread()</a></format> or
<format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:Foundation.NSObject.InvokeOnMainThread()&amp;scope=Xamarin" title="M:Foundation.NSObject.InvokeOnMainThread()">M:Foundation.NSObject.InvokeOnMainThread()</a></format> methods. Both
methods take a C# delegate or lambda that is invoked on the main
thread.
</para>
<para>
The <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:Foundation.NSObject.InvokeOnMainThread()&amp;scope=Xamarin" title="M:Foundation.NSObject.InvokeOnMainThread()">M:Foundation.NSObject.InvokeOnMainThread()</a></format> method will
invoke the specified delegate method synchronously on the main
thread. The
<format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=M:Foundation.NSObject.BeginInvokeOnMainThread()&amp;scope=Xamarin" title="M:Foundation.NSObject.BeginInvokeOnMainThread()">M:Foundation.NSObject.BeginInvokeOnMainThread()</a></format> will queue
the action to be executed on the main thread.
</para>
<para>
Example:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
//
// This performs an expensive computation in the background, and then
// updates the main UI when done.
//
void DoSomeWork (UIView view)
{
double sum = 0;
for (int i = 0; i &lt; Int32.MaxValue; i++)
sum += i * i;
// Now invoke the update on the main UI.
view.BeginInvokeOnMainThread (delegate {
view.BackgroundColor = UIColor.Green;
statusLabel.Text = "Sum is: " + sum;
});
}
]]></code>
</example>
<para>
The following example shows a helper method that can be used to run
the provided action on the main thread. It is optimized for calling from the main thread already, and avoids
a trip to the main loop pump:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
static NSObject Invoker = new NSObject();
public static void EnsureInvokedOnMainThread (Action action)
{
if (NSThread.Current.IsMainThread) {
action ();
return;
}
Invoker.BeginInvokeOnMainThread (() => action());
}
]]></code>
</example>
<format type="text/html">
<h2>How to Subclass UIView</h2>
</format>
<para>
Developers will often subclass UIView to provide their own custom
views to use. This section discusses the different classes of
members that developers would overwrite to create their custom
classes.
</para>
<format type="text/html">
<h3>Initialization</h3>
</format>
<para>
Subclasses of UIView should chain into either the UIView
constructor that is initialized with an initial frame (<format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=C:UIKit.UIView(System.Drawing.RectangleF)&amp;scope=Xamarin" title="C:UIKit.UIView(System.Drawing.RectangleF)">C:UIKit.UIView(System.Drawing.RectangleF)</a></format>). The following code shows one way to do this:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
public class MyView : UIView {
public MyView (RectangleF frame) : base (frame)
{
// Your initialization code goes here
}
}
]]></code>
</example>
<para>
In an object that will be deserialized from an archive produced by the
UI designer, the developer must chain to the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=C:UIKit.UIView(Foundation.NSCoder)&amp;scope=Xamarin" title="C:UIKit.UIView(Foundation.NSCoder)">C:UIKit.UIView(Foundation.NSCoder)</a></format>
constructor and flag the constructor as being the one
implementing the selector "initWithCoder:", as shown in the code below:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
public class MyView : UIView {
[Export ("initWithCoder:")]
public MyView (NSCoder coder) : base (coder)
{
// Your initialization code goes here
}
}
]]></code>
</example>
<para>
By default UIViews will use a <see cref="T:CoreAnimation.CALayer" /> instance for their
backing store. The section on "Changing the CALayer" below has both
information on how to make this change and a sample.
</para>
<para>
The developer should initialize child views in the constructor for the parent view.
</para>
<format type="text/html">
<h3>Custom Drawing</h3>
</format>
<para>
To implement custom drawing code in a view, developers can subclass the
UIView and override the <see cref="M:UIKit.UIView.Draw(CoreGraphics.CGRect)" />
method. The drawing code placed in the Draw method can use <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Core%20Graphics&amp;scope=Xamarin" title="N:CoreGraphics">N:CoreGraphics</a></format> to draw with. The steps to draw
with Core Graphics are:
</para>
<list type="bullet">
<item>
<term>Obtain a reference to the current graphics context.</term>
</item>
<item>
<term>Set up any desired drawing attributes, such as fill and stroke colors for instance.</term>
</item>
<item>
<term>Create geometry from Core Graphics primitives.</term>
</item>
<item>
<term>Draw the geometry.</term>
</item>
</list>
<para>
For example, the following code shows an implementation of an
overridden Draw method that draws a triangle:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
public override void Draw (RectangleF rect)
{
base.Draw (rect);
var context = UIGraphics.GetCurrentContext ();
context.SetLineWidth(4);
UIColor.Red.SetFill ();
UIColor.Blue.SetStroke ();
var path = new CGPath ();
path.AddLines(new PointF[]{
new PointF(100,200),
new PointF(160,100),
new PointF(220,200)
});
path.CloseSubpath();
context.AddPath(path);
context.DrawPath(CGPathDrawingMode.FillStroke);
}
]]></code>
</example>
<para>
The developer should not call <see cref="M:UIKit.UIView.Draw(CoreGraphics.CGRect)" /> directly. iOS calls it
during run loop processing. iOS first calls it the first time through the run loop, and then whenever the view
has been marked as needing display with a call to <see cref="M:UIKit.UIView.SetNeedsDisplayInRect(CoreGraphics.CGRect)" /> or
<see cref="M:UIKit.UIView.SetNeedsDisplayInRect(CoreGraphics.CGRect)" />.
</para>
<para>
Core Graphics uses device independent points rather than
pixels. This allows drawing code to scale between different
resolutions. For example, on a Retina display, 1 point is equivalent
to 2 pixels, while on non-Retina displays, 1 point corresponds to 1
pixel.
</para>
<format type="text/html">
<h3>Printing</h3>
</format>
<para>
UIViews can be printed. The default behavior is for the contents of
the UIView as rendered by the <see cref="M:UIKit.UIView.Draw(CoreGraphics.CGRect)" />
method to be printed.
</para>
<para>
Developers can provide a different rendering for the view when
printed by overriding the <see cref="M:UIKit.UIView.DrawRect(CoreGraphics.CGRect,UIKit.UIViewPrintFormatter)" />
method.
</para>
<format type="text/html">
<h3>Constraints</h3>
</format>
<para>
To use the constraint-based
layout system i(ntroduced with iOS 6.0) in a subclassed view, the developer must
respond to the requiresConstraintBasedLayout selector, as shown in the following example:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
class MyView : UIView {
[Export ("requiresConstraintBasedLayout")]
bool UseNewLayout ()
{
return true;
}
}
]]></code>
</example>
<para>
To use constraints to layout the subviews of a view, developers must override the <see cref="M:UIKit.UIView.UpdateConstraints" /> method. This method is
called before the constraints-based layout is performed.
</para>
<para>
Constraints-based layout is performed on the alignment rectangle
instead of the view's <see cref="P:UIKit.UIView.Frame" />.
The alignment rectangle by default is computed as the <see cref="P:UIKit.UIView.Frame" /> modified by the <see cref="P:UIKit.UIView.AlignmentRectInsets" />. Developers can
change that behavior and provide a custom alignment rectangle by
overriding the <see cref="M:UIKit.UIView.AlignmentRectForFrame(CoreGraphics.CGRect)" />
and <see cref="M:UIKit.UIView.FrameForAlignmentRect(CoreGraphics.CGRect)" />
methods.
</para>
<format type="text/html">
<h3>Layout</h3>
</format>
<para>
The default layout system for UIViews is very simple. UIViews are
created with an initial <see cref="P:UIKit.UIView.Frame" />
and an <see cref="P:UIKit.UIView.AutoresizingMask" /> that
determines how the view will be resized in response to changes in
the container's boundaries.
</para>
<para>
Developers should set the default <see cref="P:UIKit.UIView.AutoresizingMask" /> property after
initialization.
</para>
<para>
For views the will be a container for other views, developers should
configure their <see cref="P:UIKit.UIView.AutoresizingMask" /> property. If the
layout behavior provided is not sufficient, the developer should override the
<see cref="M:UIKit.UIView.LayoutSubviews" /> method.
This method is responsible for updating the <see cref="P:UIKit.UIView.Frame" /> property of each of the
subviews.
</para>
<para>
For views that change their state in response to some API calls,
developers should call the <see cref="M:UIKit.UIView.SetNeedsLayout" />, instead of laying out the view themselves. The layout event will then be processed
the next time the main loop runs. By using this approach, develoers can
coalesce multiple changes to the layout in a single pass.
</para>
<para>
UIViews can implement the <see cref="M:UIKit.UIView.SizeThatFits(CoreGraphics.CGSize)" />
method to report back what is their desired size based on the
contents of the view.
</para>
<para>
Developers can override the <see cref="M:UIKit.UIView.SubviewAdded(UIKit.UIView)" />
and the <see cref="M:UIKit.UIView.WillRemoveSubview(UIKit.UIView)" />
to track when subviews are added or removed to a UIView.
</para>
<para>
Developers can override the <see cref="M:UIKit.UIView.WillMoveToWindow(UIKit.UIWindow)" />
and the <see cref="M:UIKit.UIView.MovedToWindow" /> to
track when views are moved from one <see cref="T:UIKit.UIWindow" /> to another.
</para>
<para>
Developers can override the <see cref="M:UIKit.UIView.WillMoveToSuperview(UIKit.UIView)" />
and the <see cref="M:UIKit.UIView.MovedToSuperview" /> to
track when views are added or removed from a superview.
</para>
<format type="text/html">
<h2>Constraints Based Layout</h2>
</format>
<para>
A constraints-based layout system was added in iOS 6.0. This system
differs from the traditional layout system in that it uses rules
(constraints) that describe the relationships between subviews that
should be preserved. When views change in size (for example a label
is updated) or the size of the container changes (for example, after
a rotation), the new positions and sizes for the subviews are
computed based on these constraints.
</para>
<para>
To opt into this system, a subclass of UIView should expose a static
method that is exported as "requiresConstraintBasedLayout" and
returns true, like this:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
class MyView : UIView {
[Export ("requiresConstraintBasedLayout")]
static bool RequiresConstraintBasedLayout ()
{
return true;
}
}
]]></code>
</example>
<format type="text/html">
<h3>Event Handling</h3>
</format>
<para>
When using gesture recognizers, developers can add those directly to
the constructor at initialization time.
</para>
<para>
To perform low-level touch event handling, developers override the <see cref="M:UIKit.UIResponder.TouchesBegan(Foundation.NSSet,UIKit.UIEvent)" />, <see cref="M:UIKit.UIResponder.TouchesMoved(Foundation.NSSet,UIKit.UIEvent)" />, <see cref="M:UIKit.UIResponder.TouchesEnded(Foundation.NSSet,UIKit.UIEvent)" /> and <see cref="M:UIKit.UIResponder.TouchesCancelled(Foundation.NSSet,UIKit.UIEvent)" /> methods.
</para>
<para>Since iOS 9.0, <see cref="M:UIKit.UIResponder.TouchesMoved(Foundation.NSSet,UIKit.UIEvent)" /> events are raised on supported hardware and configurations for changes in user-applied pressure. The <see cref="P:UIKit.UITouch.Force" /> property of the <see cref="T:UIKit.UITouch" /> object in the <paramref name="touches" /> set argument contains the magnitude of the touch that raised the event. The following example shows a basic use:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
if (TraitCollection.ForceTouchCapability == UIForceTouchCapability.Available) {
UITouch t = touches.AnyObject as UITouch;
ForceLabel.Text = "Force: " + t.Force.ToString ();
}
else {
ForceLabel.Text = "Force Not Active";
}]]></code>
</example>
<para>
Application developers do not need to call the base methods for any of the above
methods if they are overriding UIView directly. But they should call base when deriving from another UIView subclass.
</para>
<para>
Application developers can control whether a gesture recognizer is activated by
overriding the <see cref="M:UIKit.UIView.GestureRecognizerShouldBegin(UIKit.UIGestureRecognizer)" />
method.
</para>
<format type="text/html">
<h2>Views and CALayers</h2>
</format>
<para>
Each UIView is backed by a <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Core%20Animation&amp;scope=Xamarin" title="N:CoreAnimation">N:CoreAnimation</a></format> Layer (<see cref="T:CoreAnimation.CALayer" />). A CALayer
represents the GPU-backed bitmap that is used to render the view
into the screen. Painting into a UIView actually
paints into the CALayer.
</para>
<para>
While the appearance of a UIView can be controlled by setting its
<see cref="P:UIKit.UIView.Frame" />, <see cref="P:UIKit.UIView.Alpha" />, <see cref="P:UIKit.UIView.BackgroundColor" />, or by overriding its <see cref="M:UIKit.UIView.Draw(CoreGraphics.CGRect)" /> method, all
those properties and functions are in fact modifying the <see cref="T:CoreAnimation.CALayer" />
owned by the view.
</para>
<para>
The <see cref="P:UIKit.UIView.Layer" /> property is a reference to the
CALayer owned by the view. Developers change the appearance of the view
by modifying the properties of that layer.
</para>
<para>
For example, modifyng the <see cref="P:CoreAnimation.CALayer.CornerRadius" /> property of a view's layer change the corner radius of the view:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
view.Layer.CornerRadius = 4;
]]></code>
</example>
<para>
Developers can add drop shadows:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
view.Layer.ShadowColor = new CGColor (1, 0, 0);
view.Layer.ShadowOpacity = 1.0f;
view.Layer.ShadowOffset = new SizeF (0, 4);
]]></code>
</example>
<para>
Developers can also apply a 3D transformation to the layer:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
view.Layer.Transform = CATransform3D.MakeRotation ((float)(Math.PI / 2), 1, 1, 1);
]]></code>
</example>
<para>
This transformation is a full 3D transform, with a
perspective element, and is more versatile than UIView's 2D
Transform property. The Frame property is no longer useful after a 3D transformation of this kind.
</para>
<format type="text/html">
<h3>Changing the CALayer</h3>
</format>
<para>
The <see cref="P:UIKit.UIView.Layer" /> owned by a view is automatically
created and assigned to the view by UIKit and it defaults to be a
<see cref="T:CoreAnimation.CALayer" /> instance. You can control the type
of layer that is created for a view by responding to the "layerClass"
selector in a static method.
</para>
<para>
Here is an example of a UIView subclass that uses a custom <see cref="T:CoreAnimation.CALayer" /> to do its drawing. This
layer, and therefore the view, always displays the color blue:
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
public class BlueView : UIView
{
[Export ("layerClass")]
public static Class GetLayerClass ()
{
return new Class (typeof (BlueLayer));
}
public override void Draw (RectangleF rect)
{
// Do nothing, the Layer will do all the drawing
}
}
public class BlueLayer : CALayer
{
public override void DrawInContext (CGContext ctx)
{
ctx.SetFillColor (0, 0, 1, 1);
ctx.FillRect (Bounds);
}
}
]]></code>
</example>
<para>
In this example, a new UIView class called "BlueView" is created. It
exports a static method called "GetLayerClass" that tells UIKit the
type of layer that this view wishes to own. In this example, the
BlueView wishes to own a BlueLayer.
</para>
<para>
It is now up to the BlueLayer to provide the visual representation
of the view. It does this by executing CoreGraphics drawing code in
its <see cref="M:CoreAnimation.CALayer.DrawInContext(CoreGraphics.CGContext)" />
method. This method is very similar to a UIView's Draw method but is used to fill the layer.
</para>
<para>
Even though the BlueLayer will do all drawing for the BlueView, the
view must still override its Draw method. This override should do
nothing and is just a signal to UIKit that the Layer will do all the
work.
</para>
<format type="text/html">
<h2>Motion Effects</h2>
</format>
<para> Motion Effects are a family of effects that can be
applied to UIViews in response to external events, typically
the device tilt. </para>
<para>
Developers can tie to motion effects the same properties that are
animatable already. UIKit ships with <see cref="T:UIKit.UIInterpolatingMotionEffect" /> which
allows control over a single property in response to a device tilt.
</para>
<para>
After the developer creates an effect, they attach it to a view by
calling the <see cref="M:UIKit.UIView.AddMotionEffect(UIKit.UIMotionEffect)" /> method and
remove it by calling the <see cref="M:UIKit.UIView.RemoveMotionEffect(UIKit.UIMotionEffect)" /> method.
The <see cref="P:UIKit.UIView.MotionEffects" />
property can also be used to query or set a number of motion
effects at once.
</para>
<para>
The developer can also create custom motion effects by subclassing the <see cref="T:UIKit.UIMotionEffect" />.
</para>
<format type="text/html">
<h2>Tint Color</h2>
</format>
<para>
Starting with iOS 7, the <see cref="P:UIKit.UIView.TintColor" /> property will now
propagate to subviews. This allows the developer to set a
global tint color, and the color will be passed down to
subviews for views that matter. Some UIViews will respond
specially based on the TintColor. Developers should also set the
<see cref="P:UIKit.UIView.TintAdjustmentMode" /> to
control the desaturation when some views are no longer active.
</para>
<!--
<format type="text/html">
<h2>Dynamics</h2>
</format>
-->
<format type="text/html">
<h2>View Hierarchies</h2>
</format>
<para>iOS user interfaces are built from <see cref="T:UIKit.UIView" /> hierarchies. Parent-child relationships determine not only the visual aspects of the UI, but determine how the application responds to touch events and orientation changes.</para>
<para>View relationships may be built programmatically or via XIB files. <see cref="T:UIKit.UIView" />s may have many <see cref="P:UIKit.UIView.Subviews" /> but only one <see cref="P:UIKit.UIView.Superview" />.</para>
<para>The most common way to add subviews is to use <see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" />, which appends the child view to the list of <see cref="P:UIKit.UIView.Subviews" />. More precise control of ordering during insertion may be done with the <see cref="M:UIKit.UIView.InsertSubview(UIKit.UIView,System.nint)" />, <see cref="M:UIKit.UIView.InsertSubviewAbove(UIKit.UIView,UIKit.UIView)" />, and <see cref="M:UIKit.UIView.InsertSubviewBelow(UIKit.UIView,UIKit.UIView)" /> methods.</para>
<para>The ordering of <see cref="P:UIKit.UIView.Subviews" /> may be manipulated with the <see cref="M:UIKit.UIView.BringSubviewToFront(UIKit.UIView)" />, <see cref="M:UIKit.UIView.SendSubviewToBack(UIKit.UIView)" />, and <see cref="M:UIKit.UIView.ExchangeSubview(System.nint,System.nint)" /> methods.</para>
<format type="text/html">
<h2>Focus</h2>
</format>
<para>On handheld iOS devices, the user interacts directly with screen objects. On tvOS, a remote is used to navigate through the elements on the screen and only one <see cref="T:UIKit.UIView" /> has "focus." Focus-related APIs include:</para>
<list type="bullet">
<item>
<term>
<see cref="P:UIKit.UIView.CanBecomeFocused" />
</term>
<description>
<see langword="true" /> if the <see cref="T:UIKit.UIView" /> may become the focused view. (See discussion below about additional requirements.)</description>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.DidUpdateFocus(UIKit.UIFocusUpdateContext,UIKit.UIFocusAnimationCoordinator)" />
</term>
<description>Called after the <see cref="T:UIKit.UIView" /> has either lost or received focus. (See also <see cref="M:UIKit.UIView.ShouldUpdateFocus(UIKit.UIFocusUpdateContext)" />.)</description>
</item>
<item>
<term>
<see cref="P:UIKit.UIView.Focused" />
</term>
<description>Whether the <see cref="T:UIKit.UIView" /> is the focused view.</description>
</item>
<item>
<term>
<see cref="P:UIKit.UIView.PreferredFocusedView" />
</term>
<description>Returns the <see cref="T:UIKit.UIView" /> that should actually be focused. (For instance, a child <see cref="T:UIKit.UIView" />.)</description>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SetNeedsFocusUpdate" />
</term>
<description>When this is the active focus environment, requests a focus update, which can potentially change the <see cref="P:UIKit.UIViewController.PreferredFocusedView" />. (See also <see cref="M:UIKit.UIViewController.UpdateFocusIfNeeded" />.)</description>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.ShouldUpdateFocus(UIKit.UIFocusUpdateContext)" />
</term>
<description>Called prior to the <see cref="T:UIKit.UIView" /> either losing or receiving focus. If either focus environment returns <see langword="false" />, the focus update is canceled.</description>
</item>
<item>
<term>
<see cref="M:UIKit.UIViewController.UpdateFocusIfNeeded" />
</term>
<description>If any focus environment has a pending update, this method forces an immediate focus update. Unlike <see cref="M:UIKit.UIView.SetNeedsFocusUpdate" />, this method may be called by any <see cref="T:UIKit.UIView" />, whether it currently contains focus or not.</description>
</item>
</list>
<para>In addition to <see cref="P:UIKit.UIView.CanBecomeFocused" /> returning <see langword="true" />, for a <see cref="T:UIKit.UIView" /> to be focused, it must have a <see cref="P:UIKit.UIView.Hidden" /> value of <see langword="false" />, a <see cref="P:UIKit.UIView.UserInteractionEnabled" /> value of <see langword="true" />, a <see cref="P:UIKit.UIView.Alpha" /> value greater than 0, and it must not be obscured by another <see cref="T:UIKit.UIView" />. </para>
</remarks>
<related type="recipe" href="https://developer.xamarin.com/ios/Recipes/Animation/CoreAnimation/Animate_a_UIView_using_UIKit">Animate a UIView using UIKit</related>
<related type="externalDocumentation" href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html">Apple documentation for <c>UIView</c></related>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public UIView ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.#ctor" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("init")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)</AttributeName>
</Attribute>
</Attributes>
<Parameters />
<Docs>
<summary>Default constructor that initializes a new instance of this class with no parameters.</summary>
<remarks>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public UIView (CoreGraphics.CGRect frame);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype CoreGraphics.CGRect frame) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.#ctor(CoreGraphics.CGRect)" />
<MemberSignature Language="F#" Value="new UIKit.UIView : CoreGraphics.CGRect -&gt; UIKit.UIView" Usage="new UIKit.UIView frame" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("initWithFrame:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.DesignatedInitializer</AttributeName>
</Attribute>
</Attributes>
<Parameters>
<Parameter Name="frame" Type="CoreGraphics.CGRect" />
</Parameters>
<Docs>
<param name="frame">Frame used by the view, expressed in iOS points.</param>
<summary>Initializes the UIView with the specified frame.</summary>
<remarks>
<para>This constructor is used to programmatically create a new instance of UIView with the specified dimension in the frame. The object will only be displayed once it has been added to a view hierarchy by calling AddSubview in a containing view.</para>
<para>This constructor is not invoked when deserializing objects from storyboards or XIB filesinstead the constructor that takes an NSCoder parameter is invoked.</para>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public UIView (Foundation.NSCoder coder);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class Foundation.NSCoder coder) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.#ctor(Foundation.NSCoder)" />
<MemberSignature Language="F#" Value="new UIKit.UIView : Foundation.NSCoder -&gt; UIKit.UIView" Usage="new UIKit.UIView coder" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("initWithCoder:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.DesignatedInitializer</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)</AttributeName>
</Attribute>
</Attributes>
<Parameters>
<Parameter Name="coder" Type="Foundation.NSCoder" />
</Parameters>
<Docs>
<param name="coder">The unarchiver object.</param>
<summary>A constructor that initializes the object from the data stored in the unarchiver object.</summary>
<remarks>
<para>This constructor is provided to allow the class to be initialized from an unarchiver (for example, during NIB deserialization). This is part of the <see cref="T:Foundation.NSCoding" /> protocol.</para>
<para>If developers want to create a subclass of this object and continue to support deserialization from an archive, they should implement a constructor with an identical signature: taking a single parameter of type <see cref="T:Foundation.NSCoder" /> and decorate it with the [Export("initWithCoder:"] attribute declaration.</para>
<para>The state of this object can also be serialized by using the companion method, EncodeTo.</para>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected UIView (Foundation.NSObjectFlag t);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor(class Foundation.NSObjectFlag t) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.#ctor(Foundation.NSObjectFlag)" />
<MemberSignature Language="F#" Value="new UIKit.UIView : Foundation.NSObjectFlag -&gt; UIKit.UIView" Usage="new UIKit.UIView t" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)</AttributeName>
</Attribute>
</Attributes>
<Parameters>
<Parameter Name="t" Type="Foundation.NSObjectFlag" />
</Parameters>
<Docs>
<param name="t">Unused sentinel value, pass NSObjectFlag.Empty.</param>
<summary>Constructor to call on derived classes to skip initialization and merely allocate the object.</summary>
<remarks>
<para>This constructor should be called by derived classes when they completely construct the object in managed code and merely want the runtime to allocate and initialize the NSObject. This is required to implement the two-step initialization process that Objective-C uses, the first step is to perform the object allocation, the second step is to initialize the object. When developers invoke the constructor that takes the NSObjectFlag.Empty they take advantage of a direct path that goes all the way up to NSObject to merely allocate the object's memory and bind the Objective-C and C# objects together. The actual initialization of the object is up to the developer.</para>
<para>This constructor is typically used by the binding generator to allocate the object, but prevent the actual initialization to take place. Once the allocation has taken place, the constructor has to initialize the object. With constructors generated by the binding generator this means that it manually invokes one of the "init" methods to initialize the object.</para>
<para>It is the developer's responsibility to completely initialize the object if they chain up using the NSObjectFlag.Empty path.</para>
<para>In general, if the developer's constructor invokes the NSObjectFlag.Empty base implementation, then it should be calling an Objective-C init method. If this is not the case, developers should instead chain to the proper constructor in their class. </para>
<para>The argument value is ignored and merely ensures that the only code that is executed is the construction phase is the basic NSObject allocation and runtime type registration. Typically the chaining would look like this:</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
//
// The NSObjectFlag merely allocates the object and registers the
// C# class with the Objective-C runtime if necessary, but no actual
// initXxx method is invoked, that is done later in the constructor
//
// This is taken from Xamarin.iOS's source code:
//
[Export ("initWithFrame:")]
public UIView (System.Drawing.RectangleF frame) : base (NSObjectFlag.Empty)
{
// Invoke the init method now.
var initWithFrame = new Selector ("initWithFrame:").Handle;
if (IsDirectBinding)
Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSend_CGRect (this.Handle, initWithFrame, frame);
else
Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper_CGRect (this.SuperHandle, initWithFrame, frame);
}
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected internal UIView (IntPtr handle);" />
<MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig specialname rtspecialname instance void .ctor(native int handle) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.#ctor(System.IntPtr)" />
<MemberSignature Language="F#" Value="new UIKit.UIView : nativeint -&gt; UIKit.UIView" Usage="new UIKit.UIView handle" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)</AttributeName>
</Attribute>
</Attributes>
<Parameters>
<Parameter Name="handle" Type="System.IntPtr" />
</Parameters>
<Docs>
<param name="handle">Pointer (handle) to the unmanaged object.</param>
<summary>A constructor used when creating managed representations of unmanaged objects; Called by the runtime.</summary>
<remarks>
<para>This constructor is invoked by the runtime infrastructure (<see cref="M:ObjCRuntime.Runtime.GetNSObject(System.IntPtr)" />) to create a new managed representation for a pointer to an unmanaged Objective-C object. Developers should not invoke this method directly, instead they should call the GetNSObject method as it will prevent two instances of a managed object to point to the same native object.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityActivate">
<MemberSignature Language="C#" Value="public virtual bool AccessibilityActivate ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool AccessibilityActivate() cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AccessibilityActivate" />
<MemberSignature Language="F#" Value="abstract member AccessibilityActivate : unit -&gt; bool&#xA;override this.AccessibilityActivate : unit -&gt; bool" Usage="uIView.AccessibilityActivate " />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("accessibilityActivate")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Activates accessibility for this UIView, returning <see langword="true" /> on success.</summary>
<returns>True upon success.</returns>
<remarks>This is a Boolean which will return a true value upon success.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityActivationPoint">
<MemberSignature Language="C#" Value="public virtual CoreGraphics.CGPoint AccessibilityActivationPoint { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype CoreGraphics.CGPoint AccessibilityActivationPoint" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityActivationPoint" />
<MemberSignature Language="F#" Value="member this.AccessibilityActivationPoint : CoreGraphics.CGPoint with get, set" Usage="UIKit.UIView.AccessibilityActivationPoint" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityActivationPoint")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityActivationPoint:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>CoreGraphics.CGPoint</ReturnType>
</ReturnValue>
<Docs>
<summary>The screen coordinates for the accessibility element.</summary>
<value>The default value is the center of the <see cref="P:UIKit.UIView.AccessibilityFrame" />.</value>
<remarks>
<para>Application developers can set this value to move the location of the accessibility element. For instance, by default the <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=UIKit%20UIView%20Accessibility%20Point&amp;scope=Xamarin" title="P:UIKit.UIView.AccessibilityPoint">P:UIKit.UIView.AccessibilityPoint</a></format> of an app icon is the center of the icon, but during rearrangement, the point is moved to the "remove control" (the circled X).</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityAttributedHint">
<MemberSignature Language="C#" Value="public virtual Foundation.NSAttributedString AccessibilityAttributedHint { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class Foundation.NSAttributedString AccessibilityAttributedHint" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityAttributedHint" />
<MemberSignature Language="F#" Value="member this.AccessibilityAttributedHint : Foundation.NSAttributedString with get, set" Usage="UIKit.UIView.AccessibilityAttributedHint" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityAttributedHint", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityAttributedHint:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>Foundation.NSAttributedString</ReturnType>
</ReturnValue>
<Docs>
<summary>An attributed string providing a brief description of the behavior of the accessibility element.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityAttributedLabel">
<MemberSignature Language="C#" Value="public virtual Foundation.NSAttributedString AccessibilityAttributedLabel { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class Foundation.NSAttributedString AccessibilityAttributedLabel" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityAttributedLabel" />
<MemberSignature Language="F#" Value="member this.AccessibilityAttributedLabel : Foundation.NSAttributedString with get, set" Usage="UIKit.UIView.AccessibilityAttributedLabel" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityAttributedLabel", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityAttributedLabel:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>Foundation.NSAttributedString</ReturnType>
</ReturnValue>
<Docs>
<summary>A brief attributed string describing the purpose of the <see cref="T:UIKit.UIView" />.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityAttributedValue">
<MemberSignature Language="C#" Value="public virtual Foundation.NSAttributedString AccessibilityAttributedValue { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class Foundation.NSAttributedString AccessibilityAttributedValue" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityAttributedValue" />
<MemberSignature Language="F#" Value="member this.AccessibilityAttributedValue : Foundation.NSAttributedString with get, set" Usage="UIKit.UIView.AccessibilityAttributedValue" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityAttributedValue", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityAttributedValue:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>Foundation.NSAttributedString</ReturnType>
</ReturnValue>
<Docs>
<summary>An attributed string holding the value of the <see cref="T:UIKit.UIView" />, when it is different than the <see cref="P:UIKit.UIView.AccessibilityAttributedLabel" />.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityElementsHidden">
<MemberSignature Language="C#" Value="public virtual bool AccessibilityElementsHidden { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool AccessibilityElementsHidden" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityElementsHidden" />
<MemberSignature Language="F#" Value="member this.AccessibilityElementsHidden : bool with get, set" Usage="UIKit.UIView.AccessibilityElementsHidden" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityElementsHidden")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityElementsHidden:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Whether the view's accessibility elements are visible.</summary>
<value>Boolean indicating whether visible or not.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityFrame">
<MemberSignature Language="C#" Value="public virtual CoreGraphics.CGRect AccessibilityFrame { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype CoreGraphics.CGRect AccessibilityFrame" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityFrame" />
<MemberSignature Language="F#" Value="member this.AccessibilityFrame : CoreGraphics.CGRect with get, set" Usage="UIKit.UIView.AccessibilityFrame" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityFrame")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityFrame:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>CoreGraphics.CGRect</ReturnType>
</ReturnValue>
<Docs>
<summary>The Frame of the accessibility element, in screen coordinates.</summary>
<value>The designated frame.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityHint">
<MemberSignature Language="C#" Value="public virtual string AccessibilityHint { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string AccessibilityHint" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityHint" />
<MemberSignature Language="F#" Value="member this.AccessibilityHint : string with get, set" Usage="UIKit.UIView.AccessibilityHint" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityHint", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityHint:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>A brief description of the action performed by the accessibility element.</summary>
<value>String that contains the hint.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityIdentifier">
<MemberSignature Language="C#" Value="public virtual string AccessibilityIdentifier { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string AccessibilityIdentifier" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityIdentifier" />
<MemberSignature Language="F#" Value="member this.AccessibilityIdentifier : string with get, set" Usage="UIKit.UIView.AccessibilityIdentifier" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:UIKit.IUIAccessibilityIdentification.AccessibilityIdentifier</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityIdentifier", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityIdentifier:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Uniquely identifies <c>this</c> for the purposes of accessibility.</summary>
<value>String identifier.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityIgnoresInvertColors">
<MemberSignature Language="C#" Value="public virtual bool AccessibilityIgnoresInvertColors { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool AccessibilityIgnoresInvertColors" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityIgnoresInvertColors" />
<MemberSignature Language="F#" Value="member this.AccessibilityIgnoresInvertColors : bool with get, set" Usage="UIKit.UIView.AccessibilityIgnoresInvertColors" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityIgnoresInvertColors")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityIgnoresInvertColors:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets whether the <see cref="T:UIKit.UIView" /> will invert its colors in response to such an accessibility request.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityLabel">
<MemberSignature Language="C#" Value="public virtual string AccessibilityLabel { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string AccessibilityLabel" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityLabel" />
<MemberSignature Language="F#" Value="member this.AccessibilityLabel : string with get, set" Usage="UIKit.UIView.AccessibilityLabel" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityLabel", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityLabel:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>A localized identifier for the accessibility element.</summary>
<value>String label identifier text.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityLanguage">
<MemberSignature Language="C#" Value="public virtual string AccessibilityLanguage { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string AccessibilityLanguage" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityLanguage" />
<MemberSignature Language="F#" Value="member this.AccessibilityLanguage : string with get, set" Usage="UIKit.UIView.AccessibilityLanguage" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityLanguage", ObjCRuntime.ArgumentSemantic.Strong)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityLanguage:", ObjCRuntime.ArgumentSemantic.Strong)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>The BCP 47 language tag of the language used to speak the accessibility element's components.</summary>
<value>String containing language tag.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityNavigationStyle">
<MemberSignature Language="C#" Value="public virtual UIKit.UIAccessibilityNavigationStyle AccessibilityNavigationStyle { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype UIKit.UIAccessibilityNavigationStyle AccessibilityNavigationStyle" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityNavigationStyle" />
<MemberSignature Language="F#" Value="member this.AccessibilityNavigationStyle : UIKit.UIAccessibilityNavigationStyle with get, set" Usage="UIKit.UIView.AccessibilityNavigationStyle" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 8, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityNavigationStyle")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 8, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityNavigationStyle:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 8, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>UIKit.UIAccessibilityNavigationStyle</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the navigation style.</summary>
<value>
<see cref="T:UIKit.UIAccessibilityNavigationStyle" />
</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityPath">
<MemberSignature Language="C#" Value="public virtual UIKit.UIBezierPath AccessibilityPath { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class UIKit.UIBezierPath AccessibilityPath" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityPath" />
<MemberSignature Language="F#" Value="member this.AccessibilityPath : UIKit.UIBezierPath with get, set" Usage="UIKit.UIView.AccessibilityPath" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityPath", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityPath:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>UIKit.UIBezierPath</ReturnType>
</ReturnValue>
<Docs>
<summary>Allows the accessibility element to be non-rectangular.</summary>
<value>
<see langword="null" /> by default, in which case the <see cref="P:UIKit.UIView.AccessibilityFrame" /> is used to highlight the element.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityTraits">
<MemberSignature Language="C#" Value="public virtual UIKit.UIAccessibilityTrait AccessibilityTraits { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype UIKit.UIAccessibilityTrait AccessibilityTraits" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityTraits" />
<MemberSignature Language="F#" Value="member this.AccessibilityTraits : UIKit.UIAccessibilityTrait with get, set" Usage="UIKit.UIView.AccessibilityTraits" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityTraits")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityTraits:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>UIKit.UIAccessibilityTrait</ReturnType>
</ReturnValue>
<Docs>
<summary>A bitmask of the <see cref="T:UIKit.UIAccessibilityTrait" />s of <c>this</c>.</summary>
<value>
<see cref="T:UIKit.UIAccessibilityTrait" />
</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityValue">
<MemberSignature Language="C#" Value="public virtual string AccessibilityValue { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string AccessibilityValue" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityValue" />
<MemberSignature Language="F#" Value="member this.AccessibilityValue : string with get, set" Usage="UIKit.UIView.AccessibilityValue" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityValue", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityValue:", ObjCRuntime.ArgumentSemantic.Copy)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>The value of the accessibility element.</summary>
<value>If the <see cref="T:UIKit.UIView" /> has a label, returns the value of the label.</value>
<remarks>
<para>Application developers should override this if their <see cref="T:UIKit.UIView" /> has both a label and a value.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AccessibilityViewIsModal">
<MemberSignature Language="C#" Value="public virtual bool AccessibilityViewIsModal { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool AccessibilityViewIsModal" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AccessibilityViewIsModal" />
<MemberSignature Language="F#" Value="member this.AccessibilityViewIsModal : bool with get, set" Usage="UIKit.UIView.AccessibilityViewIsModal" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("accessibilityViewIsModal")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAccessibilityViewIsModal:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Whether Voice Over should ignore sibling elements.</summary>
<value>The default value is <see langword="false" />.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="ActionForLayer">
<MemberSignature Language="C#" Value="public virtual Foundation.NSObject ActionForLayer (CoreAnimation.CALayer layer, string eventKey);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Foundation.NSObject ActionForLayer(class CoreAnimation.CALayer layer, string eventKey) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.ActionForLayer(CoreAnimation.CALayer,System.String)" />
<MemberSignature Language="F#" Value="abstract member ActionForLayer : CoreAnimation.CALayer * string -&gt; Foundation.NSObject&#xA;override this.ActionForLayer : CoreAnimation.CALayer * string -&gt; Foundation.NSObject" Usage="uIView.ActionForLayer (layer, eventKey)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("actionForLayer:forKey:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>Foundation.NSObject</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="layer" Type="CoreAnimation.CALayer" />
<Parameter Name="eventKey" Type="System.String" />
</Parameters>
<Docs>
<param name="layer">To be added.</param>
<param name="eventKey">To be added.</param>
<summary>Retrieves the default <see cref="T:CoreAnimation.CAAction" /> identified by <param name="eventKey" /> that targets <param name="layer" />.</summary>
<returns>This method may return <see langword="null" /> if there is no specified behavior.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="Add">
<MemberSignature Language="C#" Value="public void Add (UIKit.UIView view);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Add(class UIKit.UIView view) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.Add(UIKit.UIView)" />
<MemberSignature Language="F#" Value="member this.Add : UIKit.UIView -&gt; unit" Usage="uIView.Add view" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="view" Type="UIKit.UIView" />
</Parameters>
<Docs>
<param name="view">The subview to add.</param>
<summary>This is an alias for <see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" />, but uses the Add pattern as it allows C# 3.0 constructs to add subviews after creating the object.</summary>
<remarks>
<para>
This method is equivalent to <see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" /> and is present to enable C# 3.0 to add subviews at creation time.
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
var myView = new MyView (new RectangleF (0, 0, 320, 320)){
  new ImageGallery (region [0]),
  new ImageGallery (region [1]),
  new UILabel (new RectangleF (10, 10, 200, 200)){
    Text = "Images from our Trip"
  }
};
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName="AddConstraint">
<MemberSignature Language="C#" Value="public virtual void AddConstraint (UIKit.NSLayoutConstraint constraint);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddConstraint(class UIKit.NSLayoutConstraint constraint) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddConstraint(UIKit.NSLayoutConstraint)" />
<MemberSignature Language="F#" Value="abstract member AddConstraint : UIKit.NSLayoutConstraint -&gt; unit&#xA;override this.AddConstraint : UIKit.NSLayoutConstraint -&gt; unit" Usage="uIView.AddConstraint constraint" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addConstraint:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 6, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="constraint" Type="UIKit.NSLayoutConstraint" />
</Parameters>
<Docs>
<param name="constraint">A <see cref="T:UIKit.NSLayoutConstraint" /> to add. The <paramref name="constraint" /> must refer only to the receiving view or its subviews.</param>
<summary>Adds a constraint to the layout of the receiving view or its subviews.</summary>
<remarks>
<para>The <paramref name="constraint" /> must refer only to the receiving view or its subviews.</para>
</remarks>
<altmember cref="P:UIKit.UIView.Constraints" />
<altmember cref="M:UIKit.UIView.AddConstraints" />
<altmember cref="M:UIKit.UIView.RemoveConstraint" />
<altmember cref="M:UIKit.UIView.RemoveConstraints" />
<altmember cref="P:UIKit.UIView.TranslatesAutoresizingMaskIntoConstraints" />
</Docs>
</Member>
<Member MemberName="AddConstraints">
<MemberSignature Language="C#" Value="public virtual void AddConstraints (UIKit.NSLayoutConstraint[] constraints);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddConstraints(class UIKit.NSLayoutConstraint[] constraints) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddConstraints(UIKit.NSLayoutConstraint[])" />
<MemberSignature Language="F#" Value="abstract member AddConstraints : UIKit.NSLayoutConstraint[] -&gt; unit&#xA;override this.AddConstraints : UIKit.NSLayoutConstraint[] -&gt; unit" Usage="uIView.AddConstraints constraints" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addConstraints:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 6, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="constraints" Type="UIKit.NSLayoutConstraint[]" />
</Parameters>
<Docs>
<param name="constraints">An array of <see cref="T:UIKit.NSLayoutConstraint" />s to add. The <paramref name="constraints" /> must refer only to the receiving view or its subviews.</param>
<summary>Adds multiple constraints to the layout of the receiving view or its subviews.</summary>
<remarks>
<para>The <paramref name="constraints" /> must refer only to the receiving view or its subviews.</para>
<para>In the following example, <format type="text/html"><a href="https://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AutolayoutPG/Articles/formatLanguage.html#//apple_ref/doc/uid/TP40010853-CH3-SW1">Visual Format Language</a></format> specifies that the <c>blueView</c> be horizontally attched to the leading and trailing edge (sides), that the <c>blueView</c> and <c>greenView</c> be vertically attached to the leading and trailing edges (top and bottom) and separated by 30 pixels, and that the <c>greenView</c> be the same width as the <c>blueView</c> and attached to both the leading and trailing edges. The result is shown in the following image.</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
mainView.AddSubview(blueView);
mainView.AddSubview(greenView);
greenView.TranslatesAutoresizingMaskIntoConstraints = false;
blueView.TranslatesAutoresizingMaskIntoConstraints = false;
var viewsDictionary = NSDictionary.FromObjectsAndKeys(new NSObject[] { greenView, blueView}, new NSObject[] { new NSString("green"), new NSString("blue")});
var metrics = new NSDictionary();
mainView.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|-[blue]-|",0, new NSDictionary(), viewsDictionary));
mainView.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|-[blue]-(==30)-[green(==blue)]-|",0, new NSDictionary(), viewsDictionary));
mainView.AddConstraints(NSLayoutConstraint.FromVisualFormat("|-[green(==blue)]-|",0, new NSDictionary(), viewsDictionary));
]]></code>
</example>
<para>
<img href="~/UIKit/_images/UIKit.UIView.AddConstraints.png" alt="Screenshot showing the result of applying constraints." />
</para>
</remarks>
<altmember cref="P:UIKit.UIView.Constraints" />
<altmember cref="M:UIKit.UIView.AddConstraint" />
<altmember cref="M:UIKit.UIView.RemoveConstraint" />
<altmember cref="M:UIKit.UIView.RemoveConstraints" />
<altmember cref="P:UIKit.UIView.TranslatesAutoresizingMaskIntoConstraints" />
</Docs>
</Member>
<Member MemberName="AddGestureRecognizer">
<MemberSignature Language="C#" Value="public virtual void AddGestureRecognizer (UIKit.UIGestureRecognizer gestureRecognizer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddGestureRecognizer(class UIKit.UIGestureRecognizer gestureRecognizer) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddGestureRecognizer(UIKit.UIGestureRecognizer)" />
<MemberSignature Language="F#" Value="abstract member AddGestureRecognizer : UIKit.UIGestureRecognizer -&gt; unit&#xA;override this.AddGestureRecognizer : UIKit.UIGestureRecognizer -&gt; unit" Usage="uIView.AddGestureRecognizer gestureRecognizer" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addGestureRecognizer:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="gestureRecognizer" Type="UIKit.UIGestureRecognizer" />
</Parameters>
<Docs>
<param name="gestureRecognizer">The configured gesture recognizer to add to this view.</param>
<summary>Adds a gesture recognizer to this view.</summary>
<remarks>Adding a gesture recognizer to a view allows definition of the scope of that represented gesture, and causes it to receive touches that are hit-tested to that view and to all of its subviews. That view then establishes a strong reference to the gesture recognizer.
</remarks>
</Docs>
</Member>
<Member MemberName="AddInteraction">
<MemberSignature Language="C#" Value="public virtual void AddInteraction (UIKit.IUIInteraction interaction);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddInteraction(class UIKit.IUIInteraction interaction) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddInteraction(UIKit.IUIInteraction)" />
<MemberSignature Language="F#" Value="abstract member AddInteraction : UIKit.IUIInteraction -&gt; unit&#xA;override this.AddInteraction : UIKit.IUIInteraction -&gt; unit" Usage="uIView.AddInteraction interaction" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.iOS</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addInteraction:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.WatchOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.TvOS, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="interaction" Type="UIKit.IUIInteraction" />
</Parameters>
<Docs>
<param name="interaction">The interaction to add.</param>
<summary>Adds the interaction to the view.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AddKeyframeWithRelativeStartTime">
<MemberSignature Language="C#" Value="public static void AddKeyframeWithRelativeStartTime (double frameStartTime, double frameDuration, Action animations);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AddKeyframeWithRelativeStartTime(float64 frameStartTime, float64 frameDuration, class System.Action animations) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddKeyframeWithRelativeStartTime(System.Double,System.Double,System.Action)" />
<MemberSignature Language="F#" Value="static member AddKeyframeWithRelativeStartTime : double * double * Action -&gt; unit" Usage="UIKit.UIView.AddKeyframeWithRelativeStartTime (frameStartTime, frameDuration, animations)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addKeyframeWithRelativeStartTime:relativeDuration:animations:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="frameStartTime" Type="System.Double" />
<Parameter Name="frameDuration" Type="System.Double" />
<Parameter Name="animations" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="frameStartTime">The starting time of the animation, relative to the containing action (0-1)</param>
<param name="frameDuration">The duration of the animation, relative to the containing action (0-1).</param>
<param name="animations">The action defining the ending state of the keyframe.</param>
<summary>Adds a single keyframe to an animation.</summary>
<remarks>
<para>This method, when called within the <c>animations</c> action of a call to <see cref="M:UIKit.UIView.AnimateKeyframes(System.Double,System.Double,UIKit.UIViewKeyframeAnimationOptions,System.Action,UIKit.UICompletionHandler)" />, specifies a keyframe in an animation sequence. Both the <paramref name="frameStartTime" /> and <paramref name="frameDuration" /> parameters range fro m 0 to 1 and specify durations relative to the enclosing <see cref="M:UIKit.UIView.AnimateKeyframes(System.Double,System.Double,UIKit.UIViewKeyframeAnimationOptions,System.Action,UIKit.UICompletionHandler)" /><c>duration</c> parameter.</para>
<para>For instance, in the following example (which shows the use of both passed-in <format type="text/html"><a href="https://docs.microsoft.com/en-us/search/index?search=Foundation%20NSAction&amp;scope=Xamarin" title="T:Foundation.NSAction">T:Foundation.NSAction</a></format> parameters and a C# lambda expression), the third keyframe's <paramref name="frameStartTime" /> and <paramref name="frameDuration" /> are both set to 0.5; since the the containing <see cref="M:UIKit.UIView.AnimateKeyframesAsync(System.Double,System.Double,UIKit.UIViewKeyframeAnimationOptions,System.Action)" />'s <paramref name="duration" /> is set to 3 seconds, this animation will start at 1.5 seconds and take 1.5 seconds to complete.</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
var animationSucceeded = await UIView.AnimateKeyframesAsync(
duration : 3,
delay : 0,
options: UIViewKeyframeAnimationOptions.AllowUserInteraction,
animations: () => {
UIView.AddKeyframeWithRelativeStartTime(0, 0.25, () => label.Frame = new RectangleF(label.Frame.Left + 250, label.Frame.Top, label.Frame.Width, label.Frame.Height)
);
UIView.AddKeyframeWithRelativeStartTime(0.25, 0.25, keyframe2);
UIView.AddKeyframeWithRelativeStartTime(0.5, 0.5, keyframe3);
}
);
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName="AddLayoutGuide">
<MemberSignature Language="C#" Value="public virtual void AddLayoutGuide (UIKit.UILayoutGuide guide);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddLayoutGuide(class UIKit.UILayoutGuide guide) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddLayoutGuide(UIKit.UILayoutGuide)" />
<MemberSignature Language="F#" Value="abstract member AddLayoutGuide : UIKit.UILayoutGuide -&gt; unit&#xA;override this.AddLayoutGuide : UIKit.UILayoutGuide -&gt; unit" Usage="uIView.AddLayoutGuide guide" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addLayoutGuide:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 9, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="guide" Type="UIKit.UILayoutGuide" />
</Parameters>
<Docs>
<param name="guide">The <see cref="T:UIKit.UILayoutGuide" /> to add.</param>
<summary>Adds the specified <paramref name="guide" />, allowing for Autolayout control without creating dummy views.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="AddMotionEffect">
<MemberSignature Language="C#" Value="public virtual void AddMotionEffect (UIKit.UIMotionEffect effect);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddMotionEffect(class UIKit.UIMotionEffect effect) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddMotionEffect(UIKit.UIMotionEffect)" />
<MemberSignature Language="F#" Value="abstract member AddMotionEffect : UIKit.UIMotionEffect -&gt; unit&#xA;override this.AddMotionEffect : UIKit.UIMotionEffect -&gt; unit" Usage="uIView.AddMotionEffect effect" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addMotionEffect:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="effect" Type="UIKit.UIMotionEffect" />
</Parameters>
<Docs>
<param name="effect">Motion effect to add to the view.</param>
<summary>Adds the specified motion effect to the view.</summary>
<remarks>This method, when called using the present UIView animation context, animates the transition to the specified motion effect's values.
</remarks>
</Docs>
</Member>
<Member MemberName="AddSubview">
<MemberSignature Language="C#" Value="public virtual void AddSubview (UIKit.UIView view);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddSubview(class UIKit.UIView view) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddSubview(UIKit.UIView)" />
<MemberSignature Language="F#" Value="abstract member AddSubview : UIKit.UIView -&gt; unit&#xA;override this.AddSubview : UIKit.UIView -&gt; unit" Usage="uIView.AddSubview view" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("addSubview:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="view" Type="UIKit.UIView" />
</Parameters>
<Docs>
<param name="view">
<para>The <see cref="T:UIKit.UIView" /> to add as a nested view of this view.</para>
</param>
<summary>Adds the specified view as a subview of this view.</summary>
<remarks>
<para>
<see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" /> appends the <paramref name="view" /> to the end of <c>this</c> <see cref="T:UIKit.UIView" />'s <see cref="P:UIKit.UIView.Subviews" />. The methods <see cref="M:UIKit.UIView.InsertSubview(UIKit.UIView,System.nint)" />, <see cref="M:UIKit.UIView.InsertSubviewBelow(UIKit.UIView,UIKit.UIView)" />, and <see cref="M:UIKit.UIView.InsertSubviewAbove(UIKit.UIView,UIKit.UIView)" /> can be used to control the order.</para>
<para>To remove a <see cref="T:UIKit.UIView" /> from <see cref="P:UIKit.UIView.Subviews" />, call <see cref="M:UIKit.UIView.RemoveFromSuperview" /> on the child <see cref="T:UIKit.UIView" />.</para>
<para>Since <see cref="T:UIKit.UIView" />s can only have direct ancestor, this will overwrite the existing <see cref="P:UIKit.UIView.Superview" /> of the <paramref name="view" />.</para>
<para>A number of methods are called when a subview is added or removed:</para>
<list type="bullet">
<item>
<term>
<see cref="M:UIKit.UIView.WillMoveToSuperview(UIKit.UIView)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.WillMoveToWindow(UIKit.UIWindow)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.WillRemoveSubview(UIKit.UIView)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.SubviewAdded(UIKit.UIView)" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.MovedToSuperview" />
</term>
</item>
<item>
<term>
<see cref="M:UIKit.UIView.MovedToWindow" />
</term>
</item>
</list>
<para>The following diagram shows the sequence of calls resulting from a call to <see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" />. Note that the calls to <see cref="M:UIKit.UIView.WillMoveToWindow(UIKit.UIWindow)" /> and <see cref="M:UIKit.UIView.MovedToWindow" /> occur shortly after <see cref="M:UIKit.UIView.AddSubview(UIKit.UIView)" /> has completed.</para>
<para>
<img href="~/UIKit/_images/UIView.AddSubviewSequence.png" alt="Sequence diagram showing the methods called in response to adding a subview to a view" />
</para>
</remarks>
<altmember cref="P:UIKit.UIView.Subviews" />
<altmember cref="M:UIKit.UIView.RemoveFromSuperview" />
</Docs>
</Member>
<Member MemberName="AddSubviews">
<MemberSignature Language="C#" Value="public void AddSubviews (params UIKit.UIView[] views);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddSubviews(class UIKit.UIView[] views) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AddSubviews(UIKit.UIView[])" />
<MemberSignature Language="F#" Value="member this.AddSubviews : UIKit.UIView[] -&gt; unit" Usage="uIView.AddSubviews views" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="views" Type="UIKit.UIView[]">
<Attributes>
<Attribute>
<AttributeName>System.ParamArray</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="views">An array of zero or more <see cref="T:UIKit.UIView" />s.</param>
<summary>Convenience routine to add various views to a UIView.</summary>
<remarks>
<para>
This is merely a convenience routine that allows the application developer to add a number of views in a single call.
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
myView.AddSubviews (label, button, entry, image1, image2);
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName="AlignmentRectForFrame">
<MemberSignature Language="C#" Value="public virtual CoreGraphics.CGRect AlignmentRectForFrame (CoreGraphics.CGRect frame);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype CoreGraphics.CGRect AlignmentRectForFrame(valuetype CoreGraphics.CGRect frame) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AlignmentRectForFrame(CoreGraphics.CGRect)" />
<MemberSignature Language="F#" Value="abstract member AlignmentRectForFrame : CoreGraphics.CGRect -&gt; CoreGraphics.CGRect&#xA;override this.AlignmentRectForFrame : CoreGraphics.CGRect -&gt; CoreGraphics.CGRect" Usage="uIView.AlignmentRectForFrame frame" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("alignmentRectForFrame:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 6, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>CoreGraphics.CGRect</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="frame" Type="CoreGraphics.CGRect" />
</Parameters>
<Docs>
<param name="frame">A <see cref="T:System.Drawing.RectangleF" /> for which the alignment rectangle should be calculated.</param>
<summary>Returns a customized alignment rectangle for Auto Layout.</summary>
<returns>The alignment rectangle appropriate to the <paramref name="frame" />.</returns>
<remarks>
<para>By overriding this method, application developers can fully customize the alignment rectangle of the <see cref="T:UIKit.UIView" />.Application developers who override this method must also override the complementary method <see cref="M:UIKit.UIView.FrameForAlignmentRect(CoreGraphics.CGRect)" />. The two methods must provide complementary values.</para>
<para>Auto Layout uses "alignment rectangles" to layout subviews rather than the subviews' <see cref="P:UIKit.UIView.Frame" />. The <see cref="P:UIKit.UIView.Frame" /> of a <see cref="T:UIKit.UIView" /> may include visual elements, such as drop-shadows, that are not symmetrical around the <see cref="T:UIKit.UIView" />'s logical center. The "alignment rectangle" for a <see cref="T:UIKit.UIView" /> should be related to its logical content.</para>
<para> By default, the "alignment rectangle" of a <see cref="T:UIKit.UIView" /> is the <see cref="P:UIKit.UIView.Frame" /> plus the <see cref="P:UIKit.UIView.AlignmentRectInsets" />. The <see cref="M:UIKit.UIView.AlignmentRectForFrame(CoreGraphics.CGRect)" /> and <see cref="M:UIKit.UIView.FrameForAlignmentRect(CoreGraphics.CGRect)" /> methods can be used to fully customize the alignment rectangle.</para>
</remarks>
<altmember cref="M:UIKit.UIView.FrameForAlignmentRect" />
<altmember cref="M:UIKit.UIView.AlignmentRectInsets" />
<altmember cref="M:UIKit.UIView.ViewForBaselineLayout" />
</Docs>
</Member>
<Member MemberName="AlignmentRectInsets">
<MemberSignature Language="C#" Value="public virtual UIKit.UIEdgeInsets AlignmentRectInsets { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype UIKit.UIEdgeInsets AlignmentRectInsets" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.AlignmentRectInsets" />
<MemberSignature Language="F#" Value="member this.AlignmentRectInsets : UIKit.UIEdgeInsets" Usage="UIKit.UIView.AlignmentRectInsets" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 6, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("alignmentRectInsets")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 6, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>UIKit.UIEdgeInsets</ReturnType>
</ReturnValue>
<Docs>
<summary>Adjustments to the <see cref="P:UIKit.UIView.Frame" /> for use with Auto Layout.</summary>
<value>The default value is an <see cref="T:UIKit.UIEdgeInsets" /> whose values are all zero.</value>
<remarks>
<para>Application developers can use this property to modify the rectangle that is used by Auto Layout to control the <see cref="T:UIKit.UIView" />'s ultimate alignment.</para>
<para>Auto Layout uses "alignment rectangles" to layout subviews rather than the subviews' <see cref="P:UIKit.UIView.Frame" />. The <see cref="P:UIKit.UIView.Frame" /> of a <see cref="T:UIKit.UIView" /> may include visual elements, such as drop-shadows, that are not symmetrical around the <see cref="T:UIKit.UIView" />'s logical center. The "alignment rectangle" for a <see cref="T:UIKit.UIView" /> should be related to its logical content.</para>
<para> By default, the "alignment rectangle" of a <see cref="T:UIKit.UIView" /> is the <see cref="P:UIKit.UIView.Frame" /> plus the <see cref="P:UIKit.UIView.AlignmentRectInsets" />. The <see cref="M:UIKit.UIView.AlignmentRectForFrame(CoreGraphics.CGRect)" /> and <see cref="M:UIKit.UIView.FrameForAlignmentRect(CoreGraphics.CGRect)" /> methods can be used to fully customize the alignment rectangle.</para>
</remarks>
<altmember cref="M:UIKit.UIView.AlignmentRectForFrame" />
<altmember cref="M:UIKit.UIView.FrameForAlignmentRect" />
<altmember cref="M:UIKit.UIView.ViewForBaselineLayout" />
</Docs>
</Member>
<Member MemberName="Alpha">
<MemberSignature Language="C#" Value="public virtual nfloat Alpha { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.nfloat Alpha" />
<MemberSignature Language="DocId" Value="P:UIKit.UIView.Alpha" />
<MemberSignature Language="F#" Value="member this.Alpha : nfloat with get, set" Usage="UIKit.UIView.Alpha" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>get: Foundation.Export("alpha")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>set: Foundation.Export("setAlpha:")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.nfloat</ReturnType>
</ReturnValue>
<Docs>
<summary>Controls the transparency (alpha) value for the view.</summary>
<value>0 to 1.</value>
<remarks>
<para>
This controls the transparency for the view. If the value
is 1.0, the view is completely opaque, if the value is 0.0
the view is completely transparent.
</para>
<para>
When the value of the view is in between 0 and 1, the
contents of the view are composited with views that are
lower in the view hierarchy or the superview.
</para>
</remarks>
</Docs>
</Member>
<Member MemberName="Animate">
<MemberSignature Language="C#" Value="public static void Animate (double duration, Action animation);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void Animate(float64 duration, class System.Action animation) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.Animate(System.Double,System.Action)" />
<MemberSignature Language="F#" Value="static member Animate : double * Action -&gt; unit" Usage="UIKit.UIView.Animate (duration, animation)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("animateWithDuration:animations:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="animation" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<summary>Animates the property changes that take place in the specified action.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
<para>
This uses the CurveEaseOut and TransitionNone flags for the animation.
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Animates hiding the label by setting the alpha to zero over three seconds.
UIView.Animate (3, () => { label.Alpha = 0; });
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName="Animate">
<MemberSignature Language="C#" Value="public static void Animate (double duration, Action animation, Action completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void Animate(float64 duration, class System.Action animation, class System.Action completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.Animate(System.Double,System.Action,System.Action)" />
<MemberSignature Language="F#" Value="static member Animate : double * Action * Action -&gt; unit" Usage="UIKit.UIView.Animate (duration, animation, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Advice("Use the *Notify method that has 'UICompletionHandler completion' parameter, the 'bool' will tell you if the operation finished.")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="animation" Type="System.Action" />
<Parameter Name="completion" Type="System.Action" />
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<param name="completion">Code that is invoked when the animation completes.</param>
<summary>Animates the property changes that take place in the specified action and invokes a completion callback when the animation completes.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
<para>
This uses the CurveEaseOut and TransitionNone flags for the animation.
</para>
<example>
<code lang="csharp lang-csharp"><![CDATA[
// Animates hiding the label by setting the alpha to zero over three seconds.
UIView.Animate (3, () => { label.Alpha = 0; });
]]></code>
</example>
</remarks>
</Docs>
</Member>
<Member MemberName="Animate">
<MemberSignature Language="C#" Value="public static void Animate (double duration, double delay, UIKit.UIViewAnimationOptions options, Action animation, Action completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void Animate(float64 duration, float64 delay, valuetype UIKit.UIViewAnimationOptions options, class System.Action animation, class System.Action completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.Animate(System.Double,System.Double,UIKit.UIViewAnimationOptions,System.Action,System.Action)" />
<MemberSignature Language="F#" Value="static member Animate : double * double * UIKit.UIViewAnimationOptions * Action * Action -&gt; unit" Usage="UIKit.UIView.Animate (duration, delay, options, animation, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Advice("Use the *Notify method that has 'UICompletionHandler completion' parameter, the 'bool' will tell you if the operation finished.")</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="options" Type="UIKit.UIViewAnimationOptions" />
<Parameter Name="animation" Type="System.Action" />
<Parameter Name="completion" Type="System.Action" />
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Delay before the animation begins.</param>
<param name="options">Animation options</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<param name="completion">Code that is invoked when the animation completes.</param>
<summary>Invokes animation changes to one or more views by specifying duration, delay, options, and a completion handler.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
<para>This method initiates a set of animations that areto be performed on this view. The action indicated in the animations parameter contains the code for the animation of the properties of one or more views.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;bool&gt; AnimateAsync (double duration, Action animation);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;bool&gt; AnimateAsync(float64 duration, class System.Action animation) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateAsync(System.Double,System.Action)" />
<MemberSignature Language="F#" Value="static member AnimateAsync : double * Action -&gt; System.Threading.Tasks.Task&lt;bool&gt;" Usage="UIKit.UIView.AnimateAsync (duration, animation)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task&lt;System.Boolean&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="animation" Type="System.Action" />
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<summary>Animates the property changes that take place in the specified <paramref name="animation" /> as an asynchronous operation.</summary>
<returns>Indicates whether the animation ran to completion or not.</returns>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateKeyframes">
<MemberSignature Language="C#" Value="public static void AnimateKeyframes (double duration, double delay, UIKit.UIViewKeyframeAnimationOptions options, Action animations, UIKit.UICompletionHandler completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AnimateKeyframes(float64 duration, float64 delay, valuetype UIKit.UIViewKeyframeAnimationOptions options, class System.Action animations, class UIKit.UICompletionHandler completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateKeyframes(System.Double,System.Double,UIKit.UIViewKeyframeAnimationOptions,System.Action,UIKit.UICompletionHandler)" />
<MemberSignature Language="F#" Value="static member AnimateKeyframes : double * double * UIKit.UIViewKeyframeAnimationOptions * Action * UIKit.UICompletionHandler -&gt; unit" Usage="UIKit.UIView.AnimateKeyframes (duration, delay, options, animations, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("animateKeyframesWithDuration:delay:options:animations:completion:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="options" Type="UIKit.UIViewKeyframeAnimationOptions" />
<Parameter Name="animations" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="completion" Type="UIKit.UICompletionHandler">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDUICompletionHandler))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Duration in seconds before starting the animation.</param>
<param name="options">Designates a mask of options that indicates how the developer wants to perform the animations.</param>
<param name="animations">An action object that contains the changes to be committed to the views.</param>
<param name="completion">An action object that is to be executed when the animation sequence ends.</param>
<summary>Creates an animation action object that is to be used to set up keyframe-based animations for the current view.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
<para>Creates an animation action that is to be used to set up a keyframe-based animation.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateKeyframesAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;bool&gt; AnimateKeyframesAsync (double duration, double delay, UIKit.UIViewKeyframeAnimationOptions options, Action animations);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;bool&gt; AnimateKeyframesAsync(float64 duration, float64 delay, valuetype UIKit.UIViewKeyframeAnimationOptions options, class System.Action animations) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateKeyframesAsync(System.Double,System.Double,UIKit.UIViewKeyframeAnimationOptions,System.Action)" />
<MemberSignature Language="F#" Value="static member AnimateKeyframesAsync : double * double * UIKit.UIViewKeyframeAnimationOptions * Action -&gt; System.Threading.Tasks.Task&lt;bool&gt;" Usage="UIKit.UIView.AnimateKeyframesAsync (duration, delay, options, animations)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task&lt;System.Boolean&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="options" Type="UIKit.UIViewKeyframeAnimationOptions" />
<Parameter Name="animations" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Duration in seconds before starting the animation.</param>
<param name="options">Designates a mask of options that indicates how the developer wants to perform the animations.</param>
<param name="animations">An action object that contains the changes to be committed to the views.</param>
<summary>Creates an animation action object that is to be used to set up keyframe-based animations for the current view.</summary>
<returns>Boolean indicating whether animations finished before a completion handler was called.</returns>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotify">
<MemberSignature Language="C#" Value="public static void AnimateNotify (double duration, Action animation, UIKit.UICompletionHandler completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AnimateNotify(float64 duration, class System.Action animation, class UIKit.UICompletionHandler completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotify(System.Double,System.Action,UIKit.UICompletionHandler)" />
<MemberSignature Language="F#" Value="static member AnimateNotify : double * Action * UIKit.UICompletionHandler -&gt; unit" Usage="UIKit.UIView.AnimateNotify (duration, animation, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("animateWithDuration:animations:completion:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="animation" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="completion" Type="UIKit.UICompletionHandler">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDUICompletionHandler))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<param name="completion">
<para>The method to invoke when the animation has completed.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<summary>Animates the property changes that take place in the specified action.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotify">
<MemberSignature Language="C#" Value="public static void AnimateNotify (double duration, double delay, UIKit.UIViewAnimationOptions options, Action animation, UIKit.UICompletionHandler completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AnimateNotify(float64 duration, float64 delay, valuetype UIKit.UIViewAnimationOptions options, class System.Action animation, class UIKit.UICompletionHandler completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotify(System.Double,System.Double,UIKit.UIViewAnimationOptions,System.Action,UIKit.UICompletionHandler)" />
<MemberSignature Language="F#" Value="static member AnimateNotify : double * double * UIKit.UIViewAnimationOptions * Action * UIKit.UICompletionHandler -&gt; unit" Usage="UIKit.UIView.AnimateNotify (duration, delay, options, animation, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("animateWithDuration:delay:options:animations:completion:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="options" Type="UIKit.UIViewAnimationOptions" />
<Parameter Name="animation" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="completion" Type="UIKit.UICompletionHandler">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDUICompletionHandler))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Delay before the animation begins.</param>
<param name="options">Animation options</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<param name="completion">
<para>The method to invoke when the animation has completed.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<summary>Animates the property changes that take place in the specified action and invokes a completion callback when the animation completes.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotify">
<MemberSignature Language="C#" Value="public static void AnimateNotify (double duration, double delay, nfloat springWithDampingRatio, nfloat initialSpringVelocity, UIKit.UIViewAnimationOptions options, Action animations, UIKit.UICompletionHandler completion);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void AnimateNotify(float64 duration, float64 delay, valuetype System.nfloat springWithDampingRatio, valuetype System.nfloat initialSpringVelocity, valuetype UIKit.UIViewAnimationOptions options, class System.Action animations, class UIKit.UICompletionHandler completion) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotify(System.Double,System.Double,System.nfloat,System.nfloat,UIKit.UIViewAnimationOptions,System.Action,UIKit.UICompletionHandler)" />
<MemberSignature Language="F#" Value="static member AnimateNotify : double * double * nfloat * nfloat * UIKit.UIViewAnimationOptions * Action * UIKit.UICompletionHandler -&gt; unit" Usage="UIKit.UIView.AnimateNotify (duration, delay, springWithDampingRatio, initialSpringVelocity, options, animations, completion)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>Foundation.Export("animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="springWithDampingRatio" Type="System.nfloat" />
<Parameter Name="initialSpringVelocity" Type="System.nfloat" />
<Parameter Name="options" Type="UIKit.UIViewAnimationOptions" />
<Parameter Name="animations" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="completion" Type="UIKit.UICompletionHandler">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDUICompletionHandler))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Delay before the animation begins.</param>
<param name="springWithDampingRatio">Damping ratio set for spring animation when it is approaching its quiescent state. Value between 0 and 1 representing the amount of damping to apply to the spring effect.</param>
<param name="initialSpringVelocity">Initial spring velocity prior to attachment. The initial velocity of the spring, in points per second.</param>
<param name="options">Animation options.</param>
<param name="animations">Code containing the changes that you will apply to your view.</param>
<param name="completion">
<para>The method to invoke when the animation has completed.</para>
<para tool="nullallowed">This parameter can be <see langword="null" />.</para>
</param>
<summary>Executes a view animation that uses a timing curve that corresponds to the activity of a physical spring.</summary>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotifyAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;bool&gt; AnimateNotifyAsync (double duration, Action animation);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;bool&gt; AnimateNotifyAsync(float64 duration, class System.Action animation) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotifyAsync(System.Double,System.Action)" />
<MemberSignature Language="F#" Value="static member AnimateNotifyAsync : double * Action -&gt; System.Threading.Tasks.Task&lt;bool&gt;" Usage="UIKit.UIView.AnimateNotifyAsync (duration, animation)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task&lt;System.Boolean&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="animation" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="animation">Code containing the changes that you will apply to your view.</param>
<summary>Animates the property changes that take place in the specified action and invokes a completion callback when the animation completes.</summary>
<returns>System.Threading.Tasks.Task&lt;System.Boolean&gt;</returns>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotifyAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;bool&gt; AnimateNotifyAsync (double duration, double delay, UIKit.UIViewAnimationOptions options, Action animation);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;bool&gt; AnimateNotifyAsync(float64 duration, float64 delay, valuetype UIKit.UIViewAnimationOptions options, class System.Action animation) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotifyAsync(System.Double,System.Double,UIKit.UIViewAnimationOptions,System.Action)" />
<MemberSignature Language="F#" Value="static member AnimateNotifyAsync : double * double * UIKit.UIViewAnimationOptions * Action -&gt; System.Threading.Tasks.Task&lt;bool&gt;" Usage="UIKit.UIView.AnimateNotifyAsync (duration, delay, options, animation)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task&lt;System.Boolean&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="options" Type="UIKit.UIViewAnimationOptions" />
<Parameter Name="animation" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Delay before the animation begins.</param>
<param name="options">Animation options.</param>
<param name="animation">The changes to be applied to the view.</param>
<summary>Executes the specified <paramref name="animation" /> as an asynchronous operation.</summary>
<returns>To be added.</returns>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimateNotifyAsync">
<MemberSignature Language="C#" Value="public static System.Threading.Tasks.Task&lt;bool&gt; AnimateNotifyAsync (double duration, double delay, nfloat springWithDampingRatio, nfloat initialSpringVelocity, UIKit.UIViewAnimationOptions options, Action animations);" />
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Tasks.Task`1&lt;bool&gt; AnimateNotifyAsync(float64 duration, float64 delay, valuetype System.nfloat springWithDampingRatio, valuetype System.nfloat initialSpringVelocity, valuetype UIKit.UIViewAnimationOptions options, class System.Action animations) cil managed" />
<MemberSignature Language="DocId" Value="M:UIKit.UIView.AnimateNotifyAsync(System.Double,System.Double,System.nfloat,System.nfloat,UIKit.UIViewAnimationOptions,System.Action)" />
<MemberSignature Language="F#" Value="static member AnimateNotifyAsync : double * double * nfloat * nfloat * UIKit.UIViewAnimationOptions * Action -&gt; System.Threading.Tasks.Task&lt;bool&gt;" Usage="UIKit.UIView.AnimateNotifyAsync (duration, delay, springWithDampingRatio, initialSpringVelocity, options, animations)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.iOS</AssemblyName>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BindingImpl(ObjCRuntime.BindingImplOptions.GeneratedCode | ObjCRuntime.BindingImplOptions.Optimizable)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 7, 0, ObjCRuntime.PlatformArchitecture.All, null)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task&lt;System.Boolean&gt;</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="duration" Type="System.Double" />
<Parameter Name="delay" Type="System.Double" />
<Parameter Name="springWithDampingRatio" Type="System.nfloat" />
<Parameter Name="initialSpringVelocity" Type="System.nfloat" />
<Parameter Name="options" Type="UIKit.UIViewAnimationOptions" />
<Parameter Name="animations" Type="System.Action">
<Attributes>
<Attribute>
<AttributeName>ObjCRuntime.BlockProxy(typeof(ObjCRuntime.Trampolines/NIDAction))</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="duration">Duration in seconds for the animation.</param>
<param name="delay">Delay before the animation begins.</param>
<param name="springWithDampingRatio">Damping ratio set for spring animation when it is approaching its quiescent state. Value between 0 and 1 representing the amount of damping to apply to the spring effect.</param>
<param name="initialSpringVelocity">Initial spring velocity prior to attachment. The initial velocity of the spring, in points per second.</param>
<param name="options">Animation options.</param>
<param name="animations">Code containing the changes that you will apply to your view.</param>
<summary>Executes a view animation that uses a timing curve that corresponds to the activity of a physical spring.</summary>
<returns>
<para>A task that represents the asynchronous AnimateNotify operation. The value of the TResult parameter is a <see cref="T:UIKit.UICompletionHandler" />.</para>
</returns>
<remarks>
<para>The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
<para copied="true">The AnimateNotifyAsync method is suitable to be used with C# async by returning control to the caller with a Task representing the operation.</para>
<para copied="true">The use of this method is discouraged. Application developers should prefer to use the <see cref="T:UIKit.UIViewPropertyAnimator" /> class to animate UIViews.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="AnimationsEnabled">
<MemberSignature Language="C#" Value="public static bool AnimationsEnabled { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property bool AnimationsEnabled"