MonoTouch - UIView.Animate 完成回调未在按钮 touchUpInside 委托内调用
Posted
技术标签:
【中文标题】MonoTouch - UIView.Animate 完成回调未在按钮 touchUpInside 委托内调用【英文标题】:MonoTouch - UIView.Animate completion callback is not called inside button touchUpInside delegate 【发布时间】:2014-04-28 11:21:47 【问题描述】:我正在使用以下代码在按下 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】:我发现了问题所在。我正在使用绑定到 Obj-C 库 FXBlurView。我使用的库版本存在一个错误,导致 UIView 动画完成回调未被调用。 它已在库的 1.6.1 版本中修复。 可以在这里找到:https://github.com/nicklockwood/FXBlurView
【讨论】:
以上是关于MonoTouch - UIView.Animate 完成回调未在按钮 touchUpInside 委托内调用的主要内容,如果未能解决你的问题,请参考以下文章
Monotouch - 在 monotouch 项目中附加 Sqlite 数据库并部署到 iPad
如何在 DialogViewController (Monotouch.Dialog) 上设置背景颜色