-1

我有一个问题,我想为图表制作动画。为此,我为每个图都有透明的静态图像,它是水平图意味着从左到右的图。

现在我不想像第一次那样扩展这些图像,我们保持宽度 = 0,并且通过动画我们可以将宽度增加到图像的原始宽度,我不想要这个。

我希望图像看起来像图表正在绘制,例如心电图。我有心电图仪的静态图像,并希望显示它是动画的。

这个怎么做?

4

2 回答 2

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];
   } ];
} ];

此处输入的此代码可能有小错别字等。

于 2012-08-19T13:17:44.990 回答
0

您可以将图像用作循环缓冲区。换句话说,您只需移动锚点 x 坐标。

于 2012-08-19T15:22:27.583 回答