2013-05-26 34 views
1

我有4個1個self.view睿情節的實時數據進行重繪情節

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秒比凍結定時器。我能做些什麼讓它工作得很好。我需要重新加載實時數據

任何想法?

回答

1

請參閱繪圖庫中的「實時繪圖」演示一種方法的示例應用程序。不要在每次更新中加載所有繪圖數據和標籤,而是告訴繪圖只更新改變的點。使用-insertDataAtIndex:numberOfRecords:插入新數據點和-deleteDataInIndexRange:以刪除不再需要的任何舊數據。