制作一个没有核心图的简单线图

时间:2013-08-27 20:54:28

标签: iphone ios objective-c graph

我需要在我的应用程序中创建一个线图来跟踪数据。我看着核心情节,似乎很复杂。是否有一种更简单的方法来制作可以水平移动的折线图,它需要能够添加新的线段。并且不会导致巨大的内存过载,因为会经常添加很多内容,因此我可以将其删除,以便它们在飞蛾之后删除。所以我的问题基本上是:有一个比核心情节更简单的方法,如果有人能引导我朝着能够添加更多细分市场的方向。提前谢谢。


修改

我试过这个

- (void)drawRect:(CGRect)rect
{
    // Drawing code
    [super drawRect:rect];
    // find min and max values of data
    float max = -HUGE_VALF, min = HUGE_VALF;
    for (int i = 0; i < 0; i ++)
    {
        min = MIN(min, 0);
        max = MAX(max, 10);
    }

    // build path
    for (int i = 0; i < 0; i ++)
    {
        // line spacing is the distance you want between line vertices
       float x = i * 1;
        // scale y to view height
       float y = ((1 - min) / (max - min)) * self.bounds.size.height;

        if (i == 0)
        {
            CGContextMoveToPoint(ctx, x, y);
        }
        else
        {
            CGContextAddLineToPoint(ctx, x, y);
        }
    }
    // stroke path (configure color, width, etc before this)
    CGContextStrokePath(nil);
}

@end

1 个答案:

答案 0 :(得分:1)

您可以使用CoreGraphics自行绘制。

在UIView(或自定义图像上下文)的drawRect中。

{ 
   // find min and max values of data 
   float max = -HUGE_VALF, min = HUGE_VALF;
   for (int i = 0; i < dataCount; i ++)
   {
       min = MIN(min, data[i]); 
       max = MAX(max, data[i]);
   }

   // build path
   for (int i = 0; i < dataCount; i ++)
   {
       // line spacing is the distance you want between line vertices
       float x = i * lineSpacing;
       // scale y to view height 
       float y = ((data[i] - min) / (max - min)) * self.bounds.size.height;

       if (i == 0)
       {
           CGContextMoveToPoint(ctx, x, y);
       }
       else
       {
           CGContextAddLineToPoint(ctx, x, y);
       }
   }
   // stroke path (configure color, width, etc before this)
   CGContextStrokePath(ctx);
}

这很简单,但希望它能让你朝着正确的方向前进。