2011-11-25 5 views
1

최근 UIScrollView 내에 배치 된 요소 (UIViewController-Subclasses) 내에서 이미지를 동적으로 (게으른)로드하는 문제가 발생했습니다. 다음이미지의 동적로드

상황은 그들의 bookcovers 서의

  • 다량 인해 나는 책 요소 재활용 메모리 제약에 좌우 스크롤있는 ScrollView
  • 표시해야; didScroll-Delegate 메서드가 호출 될 때 30 개의 책 인스턴스 집합을 사용하고 UIScrollView 내에서 해당 위치를 다시 설정합니다.
  • book 요소의 프레임을 다시 설정할 때 새로운 내용 (새 책 정보)으로도 업데이트됩니다.
  • book 요소가 업데이트되면 book-cover-image가 페이드 아웃되어 스레드가 시작됩니다. 웹에서 이미지를로드하고 완료되면 이미지를 UIImageViewController의 image 속성으로 설정합니다.

지금까지 너무 좋아, 게으른 로딩 위대한 작품, 그리고 내 책 요소의 재사용은

문제가 비동기 적으로로드 된 이미지를 한 번만 표시 될 것입니다 ... 물론 작동 UIScrollview의 스크롤 애니메이션이 끝났습니다.

나는 이미 setNeedsDisplay (일단 이미지 finisehd 로딩) 같은 것을 시도했다. 하지만 정말 .... 나는 너희들이 나에게 몇 가지 조언을 hoope ... 모든

덕분에, 샘

답변

2

도움이되지 않았다 당신이 호출 할 수있는 NSURLConnection을 설정해야 그 UI를 업데이트 할 수 있도록 기본 실행 루프를 상속합니다. NSURLConnection class reference을 확인하고 검색 : 가져 오는 이미지가 대리인에게 UI의 동안을 업데이트 할 수있는 기능을 제공 할 때

urlConn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO]; 

[urlConn scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; 

[urlConn start]; 

NSRunLoopCommonModes에 연결 실행 루프 모드 설정 :

- (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode 

코드가 같아야합니다 메인 실행 루프는 UI 이벤트 추적 모드입니다 (예 : 테이블 뷰 또는 스크롤 뷰를 스크롤 할 때.

+0

환상적인, 덕분에 많은 라팔을! – samsam

+0

문제 없습니다. 건배! ;) – RaffAl

0

네트워킹 프레임을 사용하고 있습니까?

AFNetworking을 사용하는 것이 좋습니다. 다음 코드를 참조하십시오 :

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)]; 
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]]; 

여기를 참조하십시오 :

AFNetworking

+0

아니, 아니, 내 자신의 async-imageview 하위 클래스를 썼다 ... Rafal의 대답은 매우 잘 작동했다. 어쨌든 당신의 답변을 주셔서 감사합니다! – samsam