我有一个问题,我想为图表制作动画。为此,我为每个图都有透明的静态图像,它是水平图意味着从左到右的图。
现在我不想像第一次那样扩展这些图像,我们保持宽度 = 0,并且通过动画我们可以将宽度增加到图像的原始宽度,我不想要这个。
我希望图像看起来像图表正在绘制,例如心电图。我有心电图仪的静态图像,并希望显示它是动画的。
这个怎么做?
我有一个问题,我想为图表制作动画。为此,我为每个图都有透明的静态图像,它是水平图意味着从左到右的图。
现在我不想像第一次那样扩展这些图像,我们保持宽度 = 0,并且通过动画我们可以将宽度增加到图像的原始宽度,我不想要这个。
我希望图像看起来像图表正在绘制,例如心电图。我有心电图仪的静态图像,并希望显示它是动画的。
这个怎么做?
在白色背景上创建您的图像。整个图形图像。创建另一个完全白色的视图并将其覆盖在图形图像上。然后您可以为顶部图像设置动画,使左侧慢慢向右移动 - 因此 x 随着宽度的减小而增加。
编辑:例如,如果您有三个视图,并且您想为所有三个视图设置动画,您可以使用类似下面的代码,它会在每个视图上缓慢显示纯色叠加层,然后显然滑出视图到左侧(像窗帘一样):
UIView *coverView1 = [UIView alloc] initWithFrame:(CGRect){ {0,0}, graph1View.frame.size}];
coverView1.backgroundColor = [UIColor redColor];
coverView1.alpha = 0;
[graphView1 addSubview:coverView1];
UIView *coverView2 = [UIView alloc] initWithFrame:(CGRect){ {0,0}, graph2View.frame.size}];
coverView2.backgroundColor = [UIColor greenColor];
coverView2.alpha = 0;
[graphView2 addSubview:coverView2];
UIView *coverView3 = [UIView alloc] initWithFrame:(CGRect){ {0,0}, graph3View.frame.size}];
coverView3.backgroundColor = [UIColor blueColor];
coverView3.alpha = 0;
[graphView3 addSubview:coverView3];
[UIView animateWithDuration:0.5 animations:^
{
coverView1.alpha = 1;
coverView2.alpha = 1;
coverView3.alpha = 1;
}
completion:^(BOOL finished)
{
[UIView animateWithDuration:0.5 animations:^
{
CGRect frame;
frame = coverView1.frame, frame.size.width = 0, coverView1.frame = frame;
frame = coverView2.frame, frame.size.width = 0, coverView2.frame = frame;
frame = coverView3.frame, frame.size.width = 0, coverView3.frame = frame;
}
completion:^(BOOL finished)
{
[coverView1 removeFromSuperview];
[coverView2 removeFromSuperview];
[coverView3 removeFromSuperview];
} ];
} ];
此处输入的此代码可能有小错别字等。
您可以将图像用作循环缓冲区。换句话说,您只需移动锚点 x 坐标。