obj c "for loop" дорожный блок - PullRequest
1 голос
/ 30 января 2012

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

Я получаю потолокзначение для моего графика с 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

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

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

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

1 Ответ

1 голос
/ 30 января 2012

У вас есть это в вашем цикле:

scaleStep = scaleStep+scaleStep;

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

self.divScaleLabel.text =[NSString stringWithFormat:@"$%d", scaleMaxInt - scaleStep * i];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...