id | title | brief | sdk | |||||
---|---|---|---|---|---|---|---|---|
D60C5A6A-FC9E-6AF2-7A70-81FF6249E7C4 |
Create an Animation Block |
This recipe shows how to animate using blocks from Xamarin.iOS. |
|
Follow these steps to create the animation:
- Add an image named
Icon.png
to the project with a Build Action of Content. - Add the following using directives:
using CoreGraphics;
- In a UIViewController subclass create class variables for a UIImageView, UIImage and point.
CGPoint pt;
UIImage image;
UIImageView imageView;
- In the
ViewDidLoad
method, create the UIImageView, assign it a UIImage and add it as a subview.
imageView = new UIImageView(new CGRect (50, 50, 57, 57));
image = UIImage.FromFile("Icon.png");
imageView.Image = image;
View.AddSubview(imageView);
- Set the point to the Center property of the UIImageView.
pt = imageView.Center;
- Call
UIView.Animate
and pass the duration, delay, animation options, and lambda expressions for the animation code and animation completion code.
UIView.Animate (2, 0, UIViewAnimationOptions.CurveEaseInOut | UIViewAnimationOptions.Autoreverse,
() => {
imageView.Center =
new CGPoint (UIScreen.MainScreen.Bounds.Right - imageView.Frame.Width / 2, imageView.Center.Y);},
() => {
imageView.Center = pt; }
);
Objective-C blocks are bound to NSAction
delegates in C#. Therefore, lambda
expressions can be used to define the code that will be called for the animation
as well as the animation completion callback.