2012-03-09 3 views
0

MBProgressHud를 사용하여로드 표시기를 표시합니다.MBProgressHud는 로더를 표시 할 때보기를 지 웁니다.

self.hud = [[MBProgressHUD alloc] initWithView:self.view]; 
[self.view addSubview:self.hud]; 

self.hud.delegate = self; 
self.hud.labelText = @"Loading :)"; 

[self.hud showWhileExecuting:@selector(CreateCollage) onTarget:self withObject:nil animated:YES]; 

문제는이 실행될 때, 그것은 사진의 무리를 포함하는 뷰를 지 웁니다이다 : 여기 내 디스플레이 코드입니다. 시각적 인 기준 프레임을 잃어 버리기 때문에 사용자에게 혼동을줍니다.

MBProgressHud를 사용하지 않으면 CreateCollage이 완료 될 때까지 기존 사진이 설정되어있는 것을 볼 수 있습니다. 다소 느리지 만 선호하지는 않지만 다음 세트로 지연되거나 고정됩니다. 어떤 아이디어? 감사합니다

답변

0

내 생각에 문제는보기로 초기화 한 다음보기에 다시 추가하여 프레임과 관련하여보기와 동일하므로 앞에 오는 것일 수 있습니다.

self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
self.hud.delegate = self; 
self.hud.labelText = @"Loading :)"; 

을 그리고 답장을 보내 CreateCollage

[MBProgressHUD hideHUDForView:self.view animated:YES]; 
+0

감사 인 액션의 끝에서이 전화 :

나는이 대신하려고하는 것이 좋습니다. CreateCollage가 실행될 때 다음 세트가 완료 될 때까지 로더가 표시하지 않는 충분한 리소스를 차지하는 것처럼 보입니다. 따라서 기본적으로보기에서 다음 집합이 표시되기 전에 로더가 오른쪽으로 깜박입니다. 그러나 그것은 기존의 사진 세트가 시야에 남아 있도록 허용합니다. – user339946

+0

비동기 동작이라고 생각했습니다. 당연히 이것이 막히는 경우에 이것은 작동하지 않을 것이다 –

관련 문제