我正在使用以下代码在按下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 ();
}
});
};
答案 0 :(得分:1)
我弄清楚问题是什么。我正在使用绑定到Obj-C库FXBlurView。我正在使用的库版本存在一个错误,导致未调用UIView动画完成回调。 它已在库的1.6.1版本中修复。 可在此处找到:https://github.com/nicklockwood/FXBlurView