2010-01-13 1 views
3

UI가 아닌 스레드/함수에서 uiscrollview에 이미지 집합을 그립니다. 그러나 모든 이미지가 완성 된 후에 만 ​​그 그림이 그려집니다. 모든 이미지를 그리기 위해 필자는 함수를 작성했으며 이것이 비 - ui 스레드로 호출됩니다. 나는 기능UI가 아닌 스레드/함수 (iPhone)에서 UIScrollView의 화면 업데이트를 수행하는 방법

[self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:NO]; 

내부에이 줄을 쓰기 않았다 그리고

- (void)updateUI 
{ 
[myScrollView setNeedsDisplay]; 
} 

아래에 주어진하지만 제어가 함수에 전달되는 것을 볼 수있을 때의이 아무런 영향도있는 것으로 기능을 작성했습니다. 지금 무엇을해야할까요?

답변

3

내 경험에 따르면 드로잉 작업은 표시되지 않거나 뷰 계층에 추가 되어도 UI 스레드에서 수행해야합니다. 당신은 내가 알고 싶어 할 것입니다 주위에 방법을 찾을 경우, :-)

+0

또 다른 것은 내가 주 스레드 (즉, scrollview)에서 일부 작업을 수행하는 경우로드 된 각각을 볼 수 있다는 것입니다. 그러나 문제는 사용자가 항상 화면을 이동하여로드하는 것을 볼 수 없다는 것입니다. :) – wolverine

+0

"또는보기 계층에 추가되었습니다."그게 내게 열쇠 였어, 고마워! –

0

하지만 어쩌면 당신은 또한 setNeedsLayout 및/또는 layoutIfNeeded를 호출해야? 좋아 performSelectorOnMainThread:withObject:waitUntilDone:

+0

두 가지를 조합하여 사용했으나 사용하지 않았습니다. 누군가 plzz 도와주세요 ... – wolverine

0

시도 뭔가, 나는 해결책을 얻었다. 그 솔루션을 좋아하지 않아도 완벽하게 작동합니다. 나는 이처럼 내 기능을 바꿨다.

- (void)updateUI 
{ 
for(UIView *subview in [myScrollView subviews]) 
{ 
    [myScrollView bringSubviewToFront:subview]; 
} 
} 
+0

하지만 그것을 시도하고 위의 코드에서 볼 수 있습니다. – wolverine

+0

Doh. 어젯밤에 너무 늦었어야 했어 ..... – Nimrod

관련 문제