まあ、誰もが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
ますか?