Ebbene, tutti sanno che in objC abbiamoCome passare argomenti a NSAction?
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
noti che completion
blocco ha un argomento BOOL. Ora diamo un'occhiata a MonoTouch:
public static void Animate (double duration, double delay, UIViewAnimationOptions options, NSAction animation, NSAction completion)
NSAction è:
public delegate void NSAction();
Proprio il delegato senza argomenti. Inoltre, in MonoTouch "internals" possiamo vedere:
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();
}
});
}
Avviso delegate (bool x)
, si chiama la funzione, proprio come ho bisogno. Ora, come posso passare Action<bool>
come completamento a UIView.Animate
?
Non pensi che è il momento di rimuovere il vecchio involucro? –
@Maxim: Immagino che sarebbe eccessivo per rimuoverlo durante la notte. Ma obsoleto mi sembra una buona idea. (Non sono uno sviluppatore MT, solo un utente.) –