iphone UIProgressBar

У меня есть два значения targetValue и ReceivedValue . Теперь я хочу показать статус на панели выполнения. Означает, что если targetValue равно 1000, а ReceiveValue равно 500, то индикатор выполнения должен отображать 50% заполненной области.

Итак, я хочу знать, есть ли простой способ сделать это... или мне нужно рассчитать значения, которые нужно установить с помощью myProgressBar.progress = value?


person Maulik    schedule 08.04.2011    source источник


Ответы (3)


Используйте ниже

myProgressBar.progress = receivedValue /targetValue ;

Значение receivedValue /targetValue будет находиться в диапазоне от 0,0 до 1,0;

person Jhaliya - Praveen Sharma    schedule 08.04.2011
comment
@maulik: используйте полученные значения и целевые значения в качестве переменных с плавающей запятой ИЛИ float t = (float)receivedValue /(float)targetValue; - person Jhaliya - Praveen Sharma; 08.04.2011
comment
Это идеально, я использовал его давно, но я забыл, спасибо, чувак. Вы вспомнили мне хорошее решение +1 - person ashokdy; 13.11.2015

ofcorse вам нужно рассчитать значение и передать его.

myProgressBar.progress = value
person Rakesh Bhatt    schedule 08.04.2011
comment
в порядке ! я думал, что будет какая-то встроенная функция для установки максимального значения для индикатора выполнения и на основе текущего значения его отображаемой области... спасибо за ответ - person Maulik; 08.04.2011
comment
просто преобразуйте значение ur в 0-100, рассчитав процент. Это оно. - person Rakesh Bhatt; 08.04.2011

Вот решение, которое я рекомендую:

-(void)UpdateProgressbar:(NSNumber*)currentOperationNumer TotalOperationNumber:(NSNumber*)n
{       
    NSLog(@" operation : %i", currentOperationNumer);
    NSLog(@" total : %i", n);       

    NSString *inStr = [NSString stringWithFormat:@"%d", n];
    NSLog(@"%@", inStr);

    NSString *Str = [NSString stringWithFormat:@"%d", currentOperationNumer];
    NSLog(@"%@", Str);
    if (currentOperationNumer <= n) {           
        [downloadBar setProgress:([Str intValue]/[inStr floatValue])];
        NSLog(@"progress !");           
    }
    else {
        [self.view removeFromSuperview];
    }    
}
person Bechir    schedule 23.09.2011