2010-01-26 4 views
2

모든 셀에 UITableViewCellStyleSubtitle이있는 테이블보기가 있습니다. 모든 셀의 이미지는 서버에서 가져옵니다.서버에서 tableView로 이미지를 효율적으로로드하는 방법은 무엇입니까?

그러나 이미지는 자주 변경되지 않습니다.

누군가 사용자 환경을 개선하는 방법을 보여 줄 수 있습니까? 매번 사용자가 테이블을 아래로 스크롤하면 온라인 상태가되어 이미지를 다시 확인하고 다운로드하는 것처럼 보입니다.

또는 적어도 목표를 달성 할 수있는 몇 가지 옵션을 보여주십시오.

감사합니다,

답변

4

Three20 라이브러리에는 원격 이미지에 대한 URL을 허용하고 우수한 TTURLRequest/Caching 메커니즘을 사용하여 이미지를 가져 오는 ImageView 하위 클래스가 있습니다. 메모리 내 및 디스크 캐시를 유지 관리하며 캐시되지 않았거나 만료 된 경우에만 이미지를 다운로드합니다. 기본 캐시 만료 시간을 구성하거나 HTTP 응답의 값을 사용할 수 있습니다. TTTableViewController 하위 클래스와 적절한 TTTableItem 하위 클래스를 사용하면 무료로 적절한 이미지 다운로드 동작을 얻을 수 있습니다. 그러나 세 가지 구성 요소를 모두 사용하여 필요한 것을 수행 할 필요는 없습니다. 기존 코드에 통합하는 경우 표준 UIImageView 대신 TTImageView를 사용하는 고유 한 UITableViewCell 하위 클래스를 만들 수 있습니다. 그런 다음 셀 구성 방법에서 기본 자리 표시 자 이미지와로드 할 URL을 설정할 수 있으며 나머지는 거의 처리합니다. 퍼포먼스의 최적화로서, 스크롤하는 동안 TTURLRequestQueue를 일시 정지 시키려면 테이블 뷰 컨트롤러에 UIScrollView 대리자 메소드를 구현해야합니다 (TTTableViewController를 살펴보고 이것이 어떻게 수행되는지보십시오).

+0

브라이언 감사합니다, 곧 three20에 대해 조사 할 것입니다. 흥미로운 것 같지만, 아직 많은 문서를 보지 못했다.) 어쨌든 고마워. –

+0

문서화 방법은별로 없지만 TTURLRequestQueue 및 TTURLCache 코드는 매우 명확합니다. –

1

당신이 사전을 만들려면 다음

  • 중 하나를 시도하고 키

  • 캐시 및 재사용으로 이미지 이름을 사용하여 모든 가져온 이미지를 캐시 할 수 전체 UITableView 셀 tableView:cellForRowAtIndexPath:

  • 반복되는 이미지가 하나 뿐인 경우

  • 이미지는 월 단위로 바뀌므로 사용하는 이미지를 디스크에 저장하고 이미지가 후면 버너에서 변경되었거나 지정된 일간 간격으로 이미지가 다시 다운로드되는지 확인하십시오 . Brian Chapados의 회신은 흥미로운 것 같습니다.

코드에 따라 이미지로드를 향상시키는 다른 방법이 많이 있습니다. 희망은 도움이 될 것입니다 ...

+0

안녕 Niels, 어쩌면 내가 내 질문에 정리되지 않은, 나는 이미지가 1 개월 또는 3 개월 onces을 변경할 수 있지만 사용자가 매일 내 응용 프로그램을 사용하는 것을 의미합니다. –

관련 문제