アニメーションの完了ハンドラで問題が発生しました。読み込みの状態を表示するために UILabel を表示しようとしています。状態は Init() メソッドで更新されます。
問題は、ラベル (loadingLabel) がアニメーションの最後ではなく、Init() の最後に表示されることです。
ありがとうございました
これが私のコードです:
AnimationManager.BounceAppear (
this.logoImage,
duration: 0.5,
delay: 1,
onFinished:
() => {
this.loadingLabel.Hidden = false;
// Long Process which update loadingLabel
Init ();
}
);
public static void BounceAppear(UIView view, double delay = 0.5, double duration = 0.3, Action onFinished = null)
{
double interval = duration/ 2.0f;
view.Transform = CGAffineTransform.MakeScale(0.001f, 0.001f);
UIView.AnimationWillEnd += () => {
};
UIView.Animate(
interval,
delay,
UIViewAnimationOptions.CurveLinear,
()=>
{
view.Transform = CGAffineTransform.MakeScale(1.1f, 1.1f);
},
()=>
{
UIView.Animate(
interval,
()=> view.Transform = CGAffineTransform.MakeScale(0.9f,0.9f),
()=>
{
UIView.Animate(
interval,
()=> view.Transform = CGAffineTransform.MakeIdentity(),
()=> { if(onFinished != null){ onFinished(); }} );
}
);
});
}