2012-01-30 3 views
1

Im, показывающий некоторые данные в простом баре, который отображает некоторые значения, все работает, но теперь, чтобы построить масштаб для моей оси Y, у меня возникли проблемы с некоторыми базовыми материалами,obj c "for loop" дорожный блок

я получить значение потолкло для моей диаграммы с scaleMaxInt в этом случае для тестирования = 900

затем по какому-то простому тесту, я, например, 9 делений [плюс ноль] ...

так, чтобы сделать вещь работает, я создаю int pp = 100

- (void) drawScaleLabels:(int)scaleMaxInt 
{ 

    //temp division for scale, NOTE WHERE TO USE 9 DIVISIONS!! 

    int scaleStep = scaleMaxInt/9; 
    NSLog(@"va ::%d", scaleStep); 

    // case scaleMax : 0 < scaleMax < 1000 
    float scaleDiv = 31.5; 

    for (int i = 0; i<9; i++) 
    { // is 8, to 9 only for testing!! 
     int pp = 100; 

     self.divScaleLabel = [[[UILabel alloc] initWithFrame:CGRectMake(469, scaleDiv+286, 60, 14)]autorelease]; 
     self.divScaleLabel.font = [UIFont fontWithName:@"FS Albert" size:14]; 
     self.divScaleLabel.textColor = [UIColor whiteColor]; 
     self.divScaleLabel.textAlignment = UITextAlignmentRight; 
     self.divScaleLabel.text =[NSString stringWithFormat:@"$%d",scaleMaxInt-scaleStep]; 

     self.divScaleLabel.backgroundColor =[UIColor clearColor]; 
     [self.view addSubview:self.divScaleLabel]; 

     scaleDiv = scaleDiv + 31.5; 
     scaleStep = scaleStep+pp; 
    } 

} 

которым показывает список значений в моей Y оси: 900, 800, 700, 600 ... 0

, но если я использую результат int scaleStep = scaleMaxInt/9

это дает мне список, но с значение * 2

- (void) drawScaleLabels:(int)scaleMaxInt 
{ 
    //temp division for scale, NOTE WHERE TO USE 9 DIVISIONS!! 

    int scaleStep = scaleMaxInt/9; 

    NSLog(@"va ::%d", scaleStep); 

    // case scaleMax : 0 < scaleMax < 1000 
    float scaleDiv = 31.5; 

    for (int i = 0; i<9; i++) 
    { // is 8, to 9 only for testing!! 

     //int pp = 100; 

     self.divScaleLabel = [[[UILabel alloc] initWithFrame:CGRectMake(469, scaleDiv+286, 60, 14)]autorelease]; 
     self.divScaleLabel.font = [UIFont fontWithName:@"FS Albert" size:14]; 
     self.divScaleLabel.textColor = [UIColor whiteColor]; 
     self.divScaleLabel.textAlignment = UITextAlignmentRight; 
     self.divScaleLabel.text =[NSString stringWithFormat:@"$%d",scaleMaxInt-scaleStep]; 

     self.divScaleLabel.backgroundColor =[UIColor clearColor]; 
     [self.view addSubview:self.divScaleLabel]; 

     scaleDiv = scaleDiv + 31.5; 
     NSLog(@"va ::%d", scaleStep); 
     scaleStep = scaleStep+scaleStep; 
    } 

} 

так ось Y, 900, 800, 700, 500, 100, -700 ...- 24700

Im тупо застрял с этим !,

Как я могу сгенерировать список для оси Y ?, с динамическим значением, в зависимости от scaleMaxInt , который не путается ??

спасибо большое!

ответ

1

Вы это в цикле:

scaleStep = scaleStep+scaleStep; 

Это означает, что вы удвоению scaleStep на каждом проходе цикла. Удалите эту строку. Вместо этого установите self.divScaleLabel.text так:

self.divScaleLabel.text =[NSString stringWithFormat:@"$%d", scaleMaxInt - scaleStep * i]; 
+0

Вот это !, спасибо, после 9 часов кодирования, я был немного снова закрыл ума !, спасибо – MaKo