0

我有带有 2 个插图的标签栏。在第一个插图中,我有 8 个带有一些值的标签的图像。我编写了从数组中删除第一个对象并将随机对象添加到数组末尾的方法。我使用这种方法为标签添加值。每 2 秒更新一次。

-(void) imageBackground
{
    labValues1.text = [[[CPDConstants sharedInstance].arr lastObject] stringValue];
    labValues2.text = [[[CPDConstants sharedInstance].arr2 lastObject] stringValue];
    labValues3.text = @"9.76";
    labValues4.text = @"9.81";
    labValues5.text = [[[CPDConstants sharedInstance].arr3 lastObject] stringValue];
    labValues6.text = [[[CPDConstants sharedInstance].arr4 lastObject] stringValue];
    labValues7.text = @"10.01";
    labValues8.text = @"10.03";

   [NSTimer scheduledTimerWithTimeInterval:2.0f
                                     target:self
                                   selector:@selector(imageBackground)
                                   userInfo:nil
                                    repeats:YES];
}

viewDidLoad我创建具有一些起始值的数组 [CPDConstants sharedInstance].arr 并使用计时器来更新值

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

-(void)generator
{
    [[CPDConstants sharedInstance].arr removeObjectAtIndex:0];
    NSInteger countKiss=arc4random()%30;
    [[CPDConstants sharedInstance].arr addObject:[NSNumber numberWithInteger:(20+countKiss)]];
}

在第二个插图中,我有 4 个情节。我将屏幕划分为 4 个视图并添加图表。并打电话

[graph reloadData];
[graph2 reloadData];
[graph3 reloadData];
[graph4 reloadData];

这是工作。但这很慢。我用动态数据创建实时绘图。

我怎样才能让它更快?我认为主要问题在于更新标签。如果我的程序工作超过 10-15 秒,它会变得非常慢,我可以更改插图,但它没有响应。

4

1 回答 1

1

有关一种方法,请参阅绘图库示例应用程序中的“实时绘图”演示。不要在每次更新时加载所有绘图数据和标签,而是告诉绘图仅更新发生变化的点。用于-insertDataAtIndex:numberOfRecords:插入新数据点并-deleteDataInIndexRange:删除不再需要的任何旧数据。

于 2013-05-26T19:10:38.363 回答