2011-10-27 1 views
0

MBProgressHUD를 사용하여 ASINetworkQueue를 통해 다운로드 한 여러 이미지의 다운로드 진행률을 표시하려고합니다.MBProgressHUD with ASIHTTPRequest

나는 networkQueue의 진행 대리자로 hud를 설정했으며 MBProgressHUDModeDeterminate에 대한 hud 모드도 설정했습니다.

허드를 표시하고 숨길 수는 있지만 진행 상황을 변경할 수는 없습니다. hud는 networkQueue가 완료 될 때까지 자체를 다시 그리지 않습니다.

MBProgressHUD의 drawRect는 호출되지 않았지만 왜 그런지는 알 수 있습니다.

누구든지이를 달성 할 수있는 샘플 또는 의사 코드를 제공 할 수 있다면 매우 감사하게 생각합니다.

감사합니다,

안드리

답변

0

아마도 두 가지 가능성이 문제가 있습니다 : 응용 프로그램의 메인 스레드가 차단 된

  1. 가; 주 스레드 또는 이와 유사한에서 'waitUntilAllOperationsAreFinished'를 호출합니까?

  2. ASIHTTPRequest는 서버가 Content-Length : 헤더를 보내지 않으면 진행 상황을 많이보고 할 수 없으므로 문제가 될 수도 있습니다.

+0

좋아요, 제 프로그램에서 약간 놀아 봤고 그 문제가 스레딩과 관련이 있다고 알았습니다. 이전 ASIHTTPRequest의 성공 메소드 인 메소드에서 네트워크 큐를 시작합니다. 단추를 누를 때와 같이 메서드를 직접 실행하면 진행률이 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까? – bolshas

+0

이제는 내 검색 범위를 좁힐 수있었습니다. 문제는 실제로이 메서드 내부에 있습니다. [downloadRequest setDidFinishSelector : @selector (imageDownloadComplete :)]; 이 메서드 안에는 다음과 같은 호출이 있습니다. [viewHolder.layer renderInContext : UIGraphicsGetCurrentContext()]; 이 행에 주석을 달면 진행 상황이 표시됩니다. – bolshas