大家都知道,ObjC中我们有
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
请注意,
completion
块有一个BOOL参数。
现在让我们看看Monotouch:public static void Animate (double duration, double delay, UIViewAnimationOptions options, NSAction animation, NSAction completion)
NSAction是一个:
public delegate void NSAction ();
只有委托而没有任何参数。此外,在Monotouch的“内部”中,我们可以看到:
public static void Animate (double duration, double delay, UIViewAnimationOptions options,
NSAction animation, NSAction completion)
{
UIView.AnimateNotify (duration, delay, options, animation, delegate (bool x)
{
if (completion != null)
{
completion ();
}
});
}
注意 delegate (bool x)
, 它会像我需要的那样调用函数。现在,我如何将 Action<bool>
作为完成处理程序传递给 UIView.Animate
?