【问题标题】:How to draw image in x-direction?如何在 x 方向绘制图像?
【发布时间】:2012-08-19 09:40:16
【问题描述】:

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

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

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

如何做到这一点?

【问题讨论】:

    标签: iphone ios core-animation core-graphics


    【解决方案1】:

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

    【讨论】:

    • 如果我移动 x 坐标,那么图像位置也会移动。
    【解决方案2】:

    在白色背景上创建您的图像。整个图形图像。创建另一个完全白色的视图并将其覆盖在图形图像上。然后,您可以为顶部图像设置动画,使左侧慢慢向右移动 - 因此 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];
       } ];
    } ];
    

    这里输入的代码可能有小错别字等。

    【讨论】:

    • 我已经尝试过了,但是在这种情况下,一张图做得很好。但是我在同一个屏幕上有三个图表,所以第一个图表看起来不错但是当我绘制第二个图表时,第一个图表将隐藏直到第二个图表绘制完成,对吧?那么有没有其他方法像这样的上下文绘制。
    • 您将使用一个动画块,您可以在视图中的所有图表中执行相同或不同的动画。您可以使用逻辑来决定为其中一个设置动画并显示另外两个,为所有这些设置动画等。如果它全部在一个块中,它将非常平滑并且看起来非常漂亮。
    • 你有这方面的样品吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2015-08-11
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多