是否有关于MonoTouch新的基于块的动画的精彩教程?

时间:2011-12-06 10:24:15

标签: ios animation xamarin.ios core-animation

是否有关于MonoTouch新的基于块的动画的精彩教程?

我所知道的不是通常的方法:

UIView.BeginAnimations("ImageMove");

//code to make changes to the view (move controls, swap views, etc.)

UIView.CommitAnimations();

... iOS 4.0提供的新的基于块的动画方法使用:

UIView.Animate(0.2, () => { /* code to animate */ });

或:

UIView.Animate(0.2, delegate() { /* code to animate */ });

但是更广泛的教程会很有用。

提前致谢。

1 个答案:

答案 0 :(得分:4)

对于monotouch基于块的动画,方法是:

Animate(double, double, UIViewAnimationOptions, MonoTouch.Foundation.NSAction, MonoTouch.Foundation.NSAction)
//Animate( animateWithDuration:delay:options:animations:completion )

您可以参考HERE

代码示例如下:

UIView.Animate(0.2, () => { /* code to animate */ });

UIView.Animate(0.2, delegate() { /* code to animate */ });

HEREUIViewAnimationOptions的枚举列表。


我使用下面的方法为cocoa-touch执行基于块的动画,在这里粘贴代码可能是其他人需要的:

[UIView animateWithDuration:delay:options:animations:completion:]

详细说明是:

[UIView animateWithDuration:<#(NSTimeInterval)#>
                      delay:<#(NSTimeInterval)#>
                    options:<#(UIViewAnimationOptions)#>
                 animations:<#^(void)animations#>
                 completion:<#^(BOOL finished)completion#>];

您可以执行以下动画:

[UIView animateWithDuration:0.3f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     // Do your animtion here;
                     [yourViewController.view setAlpha:0.0];
                     // ...
                 }
                 completion:^{
                     if (finished) {
                         // Do sth that after the animation
                     }
                 }];