MonoTouch - UIView.Animate完成回调未在按钮touchUpInside委托内调用

时间:2014-04-28 11:21:47

标签: c# ios animation uiview

我正在使用以下代码在按下UIButton时为某些元素设置动画,但在动画完成时不会调用UIView.Animate完成回调。

如果我将UIView.Animate块移动到touchUpInside委托之外,则会触发动画完成回调。我做错了吗?

        close_loginemail.TouchUpInside += delegate(object sender, EventArgs e) {

            //Animate first_screen_view and second_screen_view left
            UIView.Animate (0.3, 0, UIViewAnimationOptions.CurveEaseInOut, () => {
                login_email_view.Alpha = 0.0f;
                login_blur.BlurRadius = 0f;
            }, //Completion callback
            () => {
                Console.WriteLine ("test");
                login_email_view.Frame = new RectangleF (View.Frame.Width, 0, View.Frame.Width, View.Frame.Height);
                if (loginemail_field.IsFirstResponder) {
                    loginemail_field.ResignFirstResponder ();
                }

                if (loginpassword_field.IsFirstResponder) {
                    loginpassword_field.ResignFirstResponder ();
                }
            });


        };

1 个答案:

答案 0 :(得分:1)

我弄清楚问题是什么。我正在使用绑定到Obj-C库FXBlurView。我正在使用的库版本存在一个错误,导致未调用UIView动画完成回调。 它已在库的1.​​6.1版本中修复。 可在此处找到:https://github.com/nicklockwood/FXBlurView