2013-02-11 2 views
1

현재 UITableView에 큰 이미지를 표시해야하는 프로젝트에서 작업하고 있습니다. 많은 개발자가이 문제를 많이 알고 있으며 다음과 같은 절차에 도달 한 스레드를 사용하여 학습합니다.UITableView에서 사용할 이미지 압축 해제

참고 : 내가 참조 큰 이미지는, 그들은 모두 300x300px (600x600px, 망막) 및 2백킬로바이트에 대해, JPEG

  1. 을 가지고 NSOperationQueue를 만들기;
  2. 이미지를 비동기 적으로 다운로드하십시오 (각 이미지는 @ 2x 이미지에 해당하는 600x600 픽셀입니다).
  3. 비 망막 이미지 (300x300 픽셀 이미지)의 크기를 조정하고 생성합니다.
  4. 두 이미지의 압축을 모두 해제하십시오.
  5. 모든 이미지를 NSCache에 저장하십시오. 절차는 (애플의 샘플 코드에서 볼 수 있듯이) 내가 국지적 인 큰 문제는 내가 '이다 내 모든 필요한 내용을 그릴 수있는있는 UITableViewCell 하위 클래스를 사용하여 주요 thread.I'am 내 jQuery과 업데이트 완료 모든 후

m 4 단계 (이미지 압축 풀기)에 대해 혼란 스럽습니다. 내 의심 :

참고 : 현재 압축 해제 된 이미지를 NSCache에 저장하고 있습니다.

  • 이미지를 압축 해제하고 UIImage 또는 NSData로 저장해야합니까?
  • 어떻게 압축 해제 된 이미지를 저장할 수 있습니까? (NSCache, NSMutableArray ...)
  • 압축 해제 된 이미지를 UITableViewCell 하위 클래스로 전달하는 가장 좋은 방법은 무엇입니까?

참고 : link

답변

2
  • 당신은 정말 디스크에 UIImage 객체를 저장할 수는 없지만 사용하여 NSDataUIImagePNGRepresentation
  • 그것을 켤 수 있습니다 : 나는 압축 해제 코드를 사용하고 여기에 소개 UIImage는 캐시를 제공 할 것이고, 당신이 얻을 수있는 가장 효율적일 것입니다.
  • 이미지를 UIImageView에 넣기 만하면, Apple은 이미지 렌더링 속도를 높이는 데 많은 시간을 할애했습니다.

당신의 이미지가 특별히 큰 것은 아니며, 특히 망막 장치의 경우,이 문제에 대한 완전하고 검증 된 솔루션이있는 AFNetworking 라이브러리를 보는 것이 좋습니다.

플러스의 코드를 찾아서 다운로드, 저장, 캐시, 재사용 할 수 있습니다.

+0

좋아, 나도 알아,하지만 난 이미 UIImageView를 사용하려고 노력하고 느린 것들. 방금 애플은 '이미지 렌더링을 빠르게 만드는 데 많은 시간을 썼다. 이미지 감압에 내 컨텍스트로해야하기 때문에 내가 drawright에 이미지를 그릴 필요가 – Mateus

+0

물론, 내가 이미지 다운로드 작업에 대한 링크를 봐, 열쇠는 UIImage와 함께 메인 스레드를 업데이 트하는 동안 모든 배경에 실행됩니다 –

+0

좋아, 내가 지금 확인해 볼께. 네 대답에 고마워! – Mateus