【问题标题】:Animation end goes to initial values动画结束进入初始值
【发布时间】:2011-08-22 07:49:21
【问题描述】:

我在我更改的按钮上运行动画,即不透明度。动画完成后,所有按钮的不透明度都会恢复到初始值。代码:

CABasicAnimation animation =  CABasicAnimation.FromKeyPath("opacity");
animation.To = NSNumber.FromFloat( 0.1f );
animation.Duration = animationDuration;
animation.TimingFunction = CAMediaTimingFunction.FromName (CAMediaTimingFunction.EaseOut);

如何将动画设置为停留在 To 值中?

【问题讨论】:

    标签: animation xamarin.ios opacity


    【解决方案1】:

    我没有在代码中看到错误,但还有另一种方法可以代替CoreAnimation,这有点冗长。

    对于 UIKit 元素,使用UIView.Animate 方法通常更容易。因此,您的样本将是:

    UIView.Animate (
        animationDuration,
        0,
        UIViewAnimationOptions.CurveEaseOut,
        delegate {yourButton.Alpha = 0.1f; },
        null);
    

    【讨论】:

    • 德库吉!现在它说'[UIApplication endIgnoringInteractionEvents] 在没有匹配 -beginIgnoringInteractionEvents 的情况下被调用。忽略。在每次动画运行时。它不会崩溃,只是将其写入调试窗口。有什么想法吗?
    • UIApplication 类为在 iOS 上运行的应用程序提供了一个集中的控制和协调点。 endIgnoring... 告诉接收器继续处理与触摸相关的事件。在动画或过渡结束时调用,我想只是忽略它,它只是一个详细信息(AFAIK)。
    • 如何在其中添加比例动画以使按钮大 4 倍?使用您的代码设置 AffineTransform 不起作用。
    • 为了让 iOS 中的东西“有趣”,还有第三种方法可以为 UIView 设置动画。下面的代码直接取自我的代码,它结合了两个变换旋转和缩放。 UIView.BeginAnimations (null); UIView.SetAnimationCurve (UIViewAnimationCurve.EaseIn); UIView.SetAnimationDuration (0.09); UIView.SetAnimationDelegate (this); UIView.SetAnimationDidStopSelector(新选择器("animateShowUp2:")); this.View.Transform = CGAffineTransform.Multiply (旋转, CGAffineTransform.MakeScale (1.2f, 1.2f)); UIView.CommitAnimations();
    猜你喜欢
    • 2016-05-18
    • 2022-08-17
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多