2016-08-21 2 views
2

나는 파일을 1 %에서 100 %까지 다운로드하는 과정을 보여주는 코드를 사용합니다.레이블에 퍼센트 표시

if(downloadTask == _downloadTask26){ 


     _progress26 = [[NSNumber numberWithInteger:totalBytesWritten] floatValue]; 
     _total26 = [[NSNumber numberWithInteger:totalBytesExpectedToWrite] floatValue]; 

    } 

    if(downloadTask == _downloadTask27){ 


     _progress27 = [[NSNumber numberWithInteger:totalBytesWritten] floatValue]; 
     _total27 = [[NSNumber numberWithInteger:totalBytesExpectedToWrite] floatValue]; 

    } 

     float progress = _progress26 + _progress27; 
     float total = _total26 + _total27; 

     NSString *percentage = [NSString stringWithFormat:@"%.f%%", ((progress/total) * 100)]; 
     (NSLog (percentage, @"%.f%%")); 
     if (!_label3) { 

       _label3 = [[UILabel alloc] initWithFrame:CGRectMake(200.43, 158.84, 42, 19)]; 

       _label3.numberOfLines = 1; 
       _label3.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; 
       _label3.adjustsFontSizeToFitWidth = YES; 
       _label3.minimumScaleFactor = 10.0f/12.0f; 
       _label3.clipsToBounds = YES; 
       _label3.backgroundColor = [UIColor clearColor]; 
       _label3.textColor = [UIColor whiteColor]; 
       _label3.textAlignment = NSTextAlignmentCenter; 

       [_scroller addSubview:_label3]; 
      } 
     } 

     _label3.text = percentage; 
     if ([_label3.text isEqual: @"100%"]) { 
     } 

그러나 파일 다운로드시 퍼센트가 오름차순으로 표시되지 않습니다. 비율은 아래 비디오와 같이 다른 순서로 표시됩니다. 어떻게 수정해야합니까?

비디오 https://drive.google.com/file/d/0B0EJbcHq3ZALUVRzanJ6SndscWc/view

답변

0

그것은이 두 가지 조건 내에서 downloadingTask26 또는 27 개 풋 로그이며, 다운로드 및 전체 크기 체크 확인 작업 조건을 다운로드 때문입니다 될 수 있습니다. 총 작업은 변경 될 수 있습니다.

0

질문의 코드를 단순화 해 봤습니까? 동영상을 생성하는 코드의 다운로드 수가 더 많아 졌습니까? 단 두 번의 다운로드만으로도 한 번 드롭 다운 될 것으로 예상되지만, 다운로드가 많으면 새로운 다운로드가 시작될 때마다 내려야합니다.

결론 많은 다운로드가 실제로 발생하는 경우 실제로 다운로드가 시작될 때까지 그리고 다운로드가 시작될 때까지 많은 다운로드에 대한 총 바이트 수를 가질 가능성이 매우 높기 때문에 결과가 완벽합니다. 다운로드 된 총 바이트의 합계가 증가합니다 (따라서 백분율이 떨어집니다).

하나의 솔루션은 각각 최대 다운로드 앞의 아이 NSProgress를 작성, NSProgress을 사용하고 부모 진행에 대한 비율을 업데이트하는 것입니다. 그렇게하면 아직 시작되지 않은 다운로드가 총 비율에 반영됩니다.

+0

예 매우 커서 코드를 단순화했습니다. 내 코드에 NSProgress를 올바르게 추가하는 방법을 보여줄 수 있습니까? – wefagaefesfsefsef

+0

우수한 WWDC 2015 비디오 [진행보고를위한 우수 사례] (https://developer.apple.com/videos/play/wwdc2015/232/)를 참조하십시오. – Rob