2009-08-12 5 views
0

사진 미리보기 응용 프로그램을 만들고 있는데 사진이 몇 장 있습니다. 내가 이미지가 많지 않았을 때 모든 것이 좋았습니다. 이 응용 프로그램은 UIScrollView를 사용하여 PageControl 코드 예제를 기반으로 이미지를 전환합니다.iPhone : 사진 미리보기

하지만 이제는 사진을 추가하고 문제가 생겼습니다. 너무 많은 메모리를 소비하고 앱이 앱 경고를 받기 시작하며 사진을 전환 할 때 너무 느립니다.

대용량 이미지 파일을 지원하도록 내 뷰어를 최적화하는 방법이 있습니까? 나는 아이폰 포토 어플리케이션과 비슷한 것을 달성하기를 원한다. - 먼저 낮은 세부적인 이미지가로드되고, 상세하고 중간에 높은 세부로 전환된다. 이것이 어떻게 이루어지고 있습니까?

미리 감사드립니다.

답변

3

응용 프로그램에 이미지를 추가 할 때 메모리 문제가 최근에 시작된 경우 응용 프로그램에 모든 이미지를 동시에로드하는 경우 (제한된 메모리를 소모 할 것임) 신속하게) 또는 응용 프로그램에서 메모리 누수가 발생했는지 확인하십시오.

모든 이미지를 동시에로드하는 경우보다 효율적인 방법은 현재 이미지와 표시된 이미지 앞뒤에 표시 할 이미지 만로드하는 것입니다. 이것이 당신이 이미 취한 접근법이라면, 메모리 누수가 있는지 확인하십시오.

저해상도를 시작하고 해상도가 높아짐에 따라 점점 더 선명 해지는 이미지와 관련하여; 나는 애플이이 일을하기 위해 제공하는 것을 전혀 모르지만, 성취하기는 꽤 쉬운 과정이어야한다. 이미지의 타일을 만들고 패닝/스케일링 할 때 대신 타일을 사용하십시오. 움직임이 멈 추면 고해상도 이미지를 다시 표시하십시오.

iPhone에서 사진 앱을 사용하는 이유는 두 가지 일 가능성이 있습니다. 먼저 저해상도 이미지를 패닝하고 크기를 조정할 때 응용 프로그램의 성능이 향상됩니다. 이미지 이동을 멈 추면 고해상도 이미지 만 볼 수 있습니다. 둘째, 애플리케이션의 작업량이 적을 때 (예 : 고해상도 이미지가 아닌 저해상도 이미지를 계속 패닝/스케일링) 기기의 배터리 용량이 적습니다.

0

아마도 한 가지 해결책은 현재 페이지, 다음 페이지 및 이전 페이지의 이미지 만로드하는 것입니다. 이 방법은 많은 양의 이미지가있는 경우 동시에 메모리에 모두 유지하지 않으려 고합니다.

낮은 디테일에서 높은 디테일 효과까지는 Apple이 어떻게하는지 잘 모르겠지만 낮은 디테일을로드 한 다음 스크롤 뷰 대리자 -scrollViewDidEndDeclerationg에서로드하는 짧은 타이머를 시작할 수 있습니다. 사람이 이미지에 오래 머무르면 고해상도 이미지. 스크롤 뷰가 다시 움직이기 시작할 때 무효화 될 수 있습니다.

관련 문제