나는 다른 작업과 비교하여 때로는 비교적 긴 시간이 걸리는 작업 중 하나의 기능을 가지고 있습니다. 함수가 실행되는 동안 이미지가 나타나서 앱이 여전히 제대로 작동하고 있음을 사용자에게 보여주고 싶습니다. 그것을 할 수 있지만UIView를 새로 고치는시기는 언제입니까? 중간 기능을 새로 고칠 수 있습니까?
방법 I는 다음과 같습니다 본질적으로
_checkImpossibleImage.hidden = NO;
bool ratioIsPossible = [PaintGame isPossible:_paintChipRatio:_paintCanRatios];
_checkImpossibleImage.hidden = YES;
가, 그 다음 눈에 보이지 않는에 이미지를 설정, 볼에 이미지를 설정하는 기능을 수행한다. 그러나이 섹션의 모든 코드가 실행될 때까지 뷰가 업데이트되지 않는 것 같습니다. 다음 함수는 전체입니다 :
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0){
// Do nothing (cancel option selected)
} else {
if (_buttonKey == @"New") {
_checkImpossibleImage.hidden = NO;
bool ratioIsPossible = [PaintGame isPossible:_paintChipRatio:_paintCanRatios];
_checkImpossibleImage.hidden = YES;
...
}
...
}
}
업데이트하려면 현재보기를 강제 할 수있는 방법이 있나요 또는 함수가 실행하는 동안 '로드'팝업을 생성하는 더 좋은 방법이 있나요?
당신은 조사 할 수 있습니다 : 당신은 주요 파견 큐에 넣어 루프의 다음 이동 - 주변까지 (가난한 메소드 이름이 방법에 의해입니다)
isPossible::
에 대한 호출을 지연시킬 수 있습니다 [UIView 설명서] (http://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instm/UIView/setNeedsDisplay), 특히'needsDisplay' 다시 그려야합니다. 그러나, 나는 중간 기능을 수행하는 다시 그리기에 대해 알고 있지 않습니다. –기본적으로 동일한 문제 : [UIActivityIndicator가 제대로 작동하지 않습니까?] (0120-386333/ko) –
이 솔루션이 작동했습니다! 나를 올바른 방향으로 가리켜 주셔서 감사합니다. – Valentine