在Swift中动画化一个双变量

时间:2018-01-26 18:32:34

标签: c# ios animation

有许多代码显示如何使用View.animate为视图的属性设置动画,但是没有代码可以为简单的双变量设置动画。 我使用CoreGraphic绘制一些图表。在c#代码下面画一个条:

var rectanglePath = UIBezierPath.FromRoundedRect(new CGRect(x,y,w,h*coef), corner);
color.SetFill();
rectanglePath.Fill();

我使用双倍(coef)从0到1的目标是让酒吧成长,但我不知道该怎么做。我尝试使用view.animate,但是当它与alpha一起逐步工作时,它将值放在一帧中。

那么正确的方法是什么? (在swift或c#中没问题)

2 个答案:

答案 0 :(得分:0)

最简单的方法是在自定义UIView中安装路径,然后使用UIView动画将视图的高度设置为0到全高(将整个高度保存为单独的变量。设置高度为零。创建一个动画,将高度设置为原始高度。)_

您可能需要使用高度约束而不是直接操作视图的frame.height,因为自动布局会使视图的帧动画有问题。

答案 1 :(得分:0)

我找到了一个带定时器的解决方案(c#):

    TimerCallback timerDelegate = new TimerCallback(UpdateCG);
    timer = new Timer(timerDelegate,this, 0, 100);

    private void UpdateCG(object state)
    {
        coef+=(1-coef)/100;
        NSOperationQueue.MainQueue.AddOperation( ()=>{SetNeedsDisplay(); } );
    }