如何在UIButton中设置TitleEdgeInsets坐标的动画?

时间:2014-10-31 18:02:21

标签: ios xamarin.ios uibutton cabasicanimation

我在Monotouch开发iOS应用程序。我需要在自定义按钮中设置TitleEdgeInsets坐标的动画。我从UIButton派生了我的自定义按钮类,因为我需要在按下按钮时为按钮和标签设置动画。按钮很简单。但是当它为标题标签制作动画时,我发现了一个问题。我只需要按钮标签垂直向底部移动。按钮标题标签的y坐标可以设置为:" this.TitleEdgeInsets.Top"。但是当它直接设置时,该属性似乎没有动画。

这是我的尝试方法:

     public void AnimateButtonPressing()
      {
        var button_offset = 20.0f;
        var basicAnimation = CABasicAnimation.FromKeyPath ("TitleEdgeInsets");

        basicAnimation.TimingFunction = CAMediaTimingFunction.FromName (CAMediaTimingFunction.Linear);

        UIEdgeInsets oldInset = this.TitleEdgeInsets;

        UIEdgeInsets newInset = new UIEdgeInsets(button_offset,oldInset.Left,oldInset.Bottom,oldInset.Right);

        basicAnimation.From = NSValue.FromUIEdgeInsets (oldInset);

        basicAnimation.To = NSValue.FromUIEdgeInsets (newInset);

        basicAnimation.Duration = 0.5f; //0.5 seconds

        this.Layer.AddAnimation (basicAnimation, "TitleEdgeInsets"); 
      }

上述方法不起作用。它根本没有动画。

感谢任何帮助,谢谢。

0 个答案:

没有答案