2010-11-22 2 views
0

UIImageView 이미지를 동적으로 높은 비율로 업데이트하는 예제가 있습니까? 이러한 이미지는 NSThread의 IP 연결에서 수신됩니다. 하지만 그들은 imageView.image = newImageRecd;을 업데이트하지 않습니다.동적으로 uiimages 업데이트

편집 : 모든 데이터는

어떤 도움/포인터를 감사합니다 주 스레드에서 recd입니다.

답변

0

메인 스레드에서 UI 업데이트를 수행해야합니다. 다른 스레드에서 연결을 실행하는 경우, 사용 updateImageView: 이미지 뷰의 이미지 속성을 설정하는 데 사용되는 방법

[self performSelectorOnMainThread:@selector(updateImageView:) withObject:newImageRecd waitUntilDone:FALSE]; 

입니다 : 나중에

-(void)updateImageView:(UIImage *)image 
{ 
    [self.imageView setImage:image]; 
} 
+0

아니요 작동하지 않습니다. 모든 데이터는 주 스레드에서 recd됩니다. –

+0

"NSThread에서 IP 연결을 통해 수신되었습니다."라는 질문이 표시됩니다. 그럼, 그게 무슨 뜻이야? –

+0

연결이 IBAction에서 설정되고 선택기가 호출되어 주 스레드에서 데이터를받습니다. –

1
아이폰 OS 4

와, 당신은 사용할 수 있습니다 Grand Central Dispatch (GCD)는 백그라운드 스레드에 이미지를로드합니다. 튜토리얼은 위의 코드 제공

http://blog.slaunchaman.com/2011/02/28/cocoa-touch-tutorial-using-grand-central-dispatch-for-asynchronous-table-view-cells/

: 여기에 완벽하게이 과정을 설명하는 링크의 I 원격 서버에서 이미지를로드 할 자신이 사용하고

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

dispatch_async(queue, ^{ 
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 

    dispatch_sync(dispatch_get_main_queue(), ^{ 
     [[cell imageView] setImage:image]; 
     [cell setNeedsLayout]; 
    }); 
}); 

, 그리고 그것은 작동하고 큰.

관련 문제