2013-03-31 4 views
0

내가 원하는 결과입니다. 장치가 서버로부터 데이터를 수신으로, MemoryWarning을 트리거 이미지로드는 점진적으로 UIImageView 이미지를 점진적으로 로딩

loading progressively effect

은 현재 내가 노력이

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [overallData appendData:data]; 
    self.imageView.image = [UIImage imageWithData:overallData]; 
} 

뭔가를하고 있어요,하지만 모든 램을 소비 앱이 가끔 충돌합니다. 그것은 위의 코드를 실행할 때마다이 오류 <Error>: ImageIO: JPEG Corrupt JPEG data: premature end of data segment을 보여 주지만, 큰 문제는 아닙니다.

누군가가 최적화에 대해 더 잘 알고 있습니까? 그렇지 않으면이 효과를 제거해야합니다.

+0

그리고 한 가지 더 소모됩니다, 캐시 메모리에서 전체 이미지를 표시, 나는 이것이 관련이 있는지 확실하지 않습니다,하지만 난 ARC를 사용하여. – Gonzo

+0

didReceiveData 메서드가 몇 번 호출 되나요? 어쩌면 너무 많은 시간이 걸려서 메모리 경고가 발생합니다 또한 jpg와 png의 차이점을 살펴보고 점진적 로딩에 더 적합한 것을 확인하십시오 (점진적으로로드하는 점진적 로딩을 원하지 않는다는 것에 유의하십시오. 고해상도 버전, 예를 들어 컷오프 버전이 아님) –

+0

이 함수는 약 5 번 호출되며 해상도를 높이면 로딩 효과도 좋습니다. 그것은 이미지를로드하는 아이디어를 제공하기 때문에 너무 중요하지 않습니다. – Gonzo

답변

0

큰 이미지를 테이블 뷰 축소판 이미지에서 사용한다고 생각하면 Nscache에서 데이터를 저장하는 것이 좋으며, 이미지를 자르기 이미지를 테이블보기로 축소하여 전체 이미지보기에서 자르지 않아도됩니다. 당신이보기 테이블의 전체 크기의 이미지를 사용하는 경우

앱에서 무거운 메모리

+0

테이블 뷰에서 미리보기 이미지 (44x44)를로드하고 이미 NSCache에 저장하고 있습니다. 그런 다음 전체 이미지보기로 이동하는 경우에만 서버에서 전체 크기를로드하기 시작합니다. 사용자가 열지 못한다면 전체 크기 이미지를로드하는 것이 의미가 없기 때문입니다. – Gonzo

관련 문제