有许多代码显示如何使用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#中没问题)
答案 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(); } );
}