【问题标题】:Core-plot real-time-data for redraw plot重绘绘图的核心绘图实时数据
【发布时间】:2013-05-21 11:21:07
【问题描述】:

我在 1 个 self.view 上有 4 个托管视图

self.hostView.frame = CGRectMake(0.0, 0.0, 512.0, 352.0);
self.hostView2.frame = CGRectMake(512.0, 0.0, 512.0, 352.0);
self.hostView3.frame = CGRectMake(0.0, 352.0, 512.0, 352.0);
self.hostView4.frame = CGRectMake(512.0, 352.0, 512.0, 352.0);

在 hostingView 上我制作情节。我有 4 个包含一些数据的数组。

self.arr1 = [NSMutableArray arrayWithObjects:
                [NSDecimalNumber numberWithFloat:36.23],
                [NSDecimalNumber numberWithFloat:38.44],
                nil];
self.arr2 = [NSMutableArray arrayWithObjects:
                [NSDecimalNumber numberWithFloat:36.23],
                [NSDecimalNumber numberWithFloat:38.44],
                nil];
self.arr3 = [NSMutableArray arrayWithObjects:
                [NSDecimalNumber numberWithFloat:36.23],
                [NSDecimalNumber numberWithFloat:38.44],
                nil];
self.arr4 = [NSMutableArray arrayWithObjects:
                [NSDecimalNumber numberWithFloat:36.23],
                [NSDecimalNumber numberWithFloat:38.44],
                nil];

我使用调用方法生成器的计时器

[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(generator) userInfo:nil repeats:YES];

-(void)generator
{
    [self.bd1 removeObjectAtIndex:0];
    NSInteger count=arc4random()%30;
    [self.bd1 addObject:[NSNumber numberWithInteger:(20+count)]];
    [graph reloadData];

    [self.bd2 removeObjectAtIndex:0];

    [self.bd2 addObject:[NSNumber numberWithInteger:(20+count)]];
    [graph2 reloadData];

    [self.bd3 removeObjectAtIndex:0];

    [self.bd3 addObject:[NSNumber numberWithInteger:(20+count)]];
    [graph3 reloadData];

    [self.bd4 removeObjectAtIndex:0];

    [self.bd4 addObject:[NSNumber numberWithInteger:(20+count)]];
    [graph4 reloadData];
}

它的工作时间为 38 秒,然后冻结。我能做些什么让它正常工作。我需要重新加载数据以进行实时

有什么想法吗?

【问题讨论】:

    标签: ios core-plot real-time-data


    【解决方案1】:

    查看绘图库示例应用中的“实时绘图”演示以了解一种方法。不要在每次更新时加载所有绘图数据和标签,而是告诉绘图只更新发生变化的点。使用-insertDataAtIndex:numberOfRecords: 插入新数据点,使用-deleteDataInIndexRange: 删除不再需要的任何旧数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      相关资源
      最近更新 更多