나는 사진 갤러리 앱을 작업 중입니다. 루트보기는 사용자를 축소판보기로 이동시키는 탐색 컨트롤러입니다. 미리보기 이미지를 누르면 사용자가 전체 이미지로 탭 이미지를 보여주는 PhotoView로 이동합니다. 다음은UIScrollView 앱이 기기에서 충돌하지만 시뮬레이터에서 완벽하게 실행됩니다.
내가 내 PhotoViewController에서 수행 한 것입니다 :
접근 방식이 거의 유사 내가 GitHub의에서 발견 된있는 ScrollingMadness 프로젝트입니다.
UIScrollView를 초기화하고 뷰 컨트롤러의 뷰에 하위보기로 추가합니다. UIScrollView의 몇 가지 기본 속성을 설정합니다. UIImageViews에 이미지를 추가하십시오 (숫자 5). 이러한 이미지 뷰를 모두 하위 뷰로 UIScrollView에 추가합니다. 이미지에서 확대/축소 작업을 수행하면 모든 이미지 하위 뷰가 있지만 현재 뷰는 스크롤 뷰에서 제거됩니다. 이미지가 최소 눈금으로 축소되면 모든 이미지가 UIScrollView에 다시 추가됩니다.
Apple의 샘플 코드에서 설명한 것처럼 TapDetectingImageView 대리인을 사용하여 imageViews를 만들고 터치 이벤트를 처리하고 있습니다.
앱을 실행하면 모든 것이 시뮬레이터에서 올바르게 작동합니다. 어떤 문제도 없습니다. 하지만 기기에서 앱을 실행하면 3 번째 또는 4 번째 이미지로 스크롤 한 후 충돌이 발생합니다. 디버깅하는 동안 나는 3 번째 또는 4 번째 이미지로 스크롤 한 후 didReceiveMemory 경고가 호출됨을 알게되었습니다. Instruments를 사용하여 앱을 실행합니다. 객체 할당은 충돌이 발생할 때 할당 수준을 1.5-2MB로 보여줍니다. 이 수준의 메모리 사용은 매우 정상적인 것 같습니다 ... 맞습니까?
전에 이것을 경험 한 사람이나 내가 어떻게 제거 할 수 있는지에 대한 의견은이 시점에서 내가 필요한 모든 도움이 될 것입니다.
다른 정보가 필요한 경우 알려 주시기 바랍니다.
PS는> 그 시뮬레이터에서 완벽하지만 장치 :(자사의 메모리가 부족하기 때문에
Daniel - 픽셀 완벽합니다. 이미지는 1200x1600이었다. 나는 그들을 320x480으로 조각 냈다. 그것은 매력처럼 작동한다. 지금 사용하고있는 이미지의 수는 5 개입니다.하지만 결국 20 개의 이미지를 사용해야합니다. 당신이 언급 한 것처럼 한 번에 3 개의 이미지를 로딩하는 방법이나 lazy laod imageViews를 제안 할 수 있다면 큰 도움이 될 것입니다. 확대 부분이 처리되었습니다. 아무것도 메모리에 들어갔다 갔다. 이미 메모리에있는 내용의 하위보기에있는 인풋 항목. 도움 주셔서 감사합니다. –
애플 아이폰 개발자 사이트에서 샘플 프로젝트 인 PageControl을 보면, 원하는 것을 성취 할 수있는 좋은 예가있다. – Daniel