2013-03-08 2 views
0

사용자가 카메라 롤에 이미지를 저장할 때 UIProgressView을 표시하려고합니다.카메라 롤에 저장하는 동안 얼마나 다운로드되었는지 확인하려면 어떻게합니까?

진행 표시기에 표시 할 내용을 결정하기 위해 주어진 지점에서 이미지의 얼마만큼을 다운로드했는지 알아야합니다. 어떻게 결정합니까?

- (void)updateSaveProgressBar 
{  
    if ([self.saveProgressView progress] < 1) { 
    self.saveProgressView.progress = (float)receivedData/(float)totalData; 
    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(updateSaveProgressBar) userInfo:nil repeats:NO]; 
    } 
} 

self.saveProgressViewUIProgressView입니다 :

내가 좋아하는 일을하고 있어요. 이 예에서는 receivedData의 값을 어떻게 결정합니까?

감사합니다.

+0

'UIImageWriteToSavedPhotosAlbum' 기능을 사용하고 있습니까? 진행 방법은 없습니다. 단지 2 ~ 2 분이 걸릴 것입니다. 원하는 경우 활동 표시기 만 표시하십시오. – rmaddy

+0

'UIImageWriteToSavedPhotosAlbum'을 사용 중입니다. 진행 상황을 확인할 수있는 카메라 롤 저장 방법이 있습니까? Dropbox 앱은 어떻게합니까? – Steven

+0

또한 이미지의 더 작은 버전을 표시 한 다음 여전히 전체 크기를 저장하도록 제안합니다. 따라서 사용자가 품질이 좋지 않은 네트워크에있는 경우 특히 다운로드하는 데 몇 초 이상 걸릴 수 있습니다. – Steven

답변

0

원격 파일 다운로드 진행률을 표시하려면 NSURLConnection으로 비동기 다운로드를 사용하고 연결에 데이터가 수신 될 때마다 진행률을 업데이트해야합니다 (connection:didReceiveData:). 연결이 완료되면 UIImageWriteToSavedPhotosAlbum으로 전화하여 이미지를 카메라 롤에 저장할 수 있습니다. 또한 UIImageWriteToSavedPhotosAlbum에는 저장이 완료 될 때 호출 할 콜백 선택기가 있으므로 해당 선택기를 사용하여 이미지를 다운로드하고 저장하는 모든 프로세스가 완료되었음을 사용자에게 표시 할 수 있습니다.

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); 

완료 선택

- (void)    image: (UIImage *) image 
    didFinishSavingWithError: (NSError *) error 
       contextInfo: (void *) contextInfo 
{ 

} 

행운을!

+0

이것은 위에 제공된 @rmaddy 응답에 매우 가깝습니다. 정답으로 표시, 감사합니다. – Steven