0

アニメーションの完了ハンドラで問題が発生しました。読み込みの状態を表示するために 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(); }} );
        }
    );
    });
}
4

1 に答える 1